2011-03-22 77 views
0

我有问题显示与Zend_Navigation的面包屑。Zend导航(面包屑)不显示

我有一个控制器,它接受一个参数,从数据库中查询出来的文章。所以,如果你指向“articles/view/id/3”,它会返回一个id为3的文章。我遇到的问题是面包屑在这个逻辑下工作。理想情况下,当去“articles/view/id/3”我想面包屑是:“文章> Article_Name”

我的代码呈现导航和子导航好吧,它只是在面包屑失败,目前不显示任何东西。

这里是我的代码:

1)网站的XML格式,看起来像导航:

<?xml version="1.0"?> 
<zend-config xmlns:zf="http://framework.zend.com/xml/zend-config-xml/1.0/"> 
    <nav> 
    <articles> 
     <label>Articles</label> 
     <uri>/</uri> 
     <order>1</order> 
     <active>1</active> 
     <visible>1</visible> 
     <pages> 
     <article_one> 
      <label>Article One</label> 
      <uri>/articles/view/id/81e728d9d4c2f636f067f89cc14862c</uri> 
      <order>1</order> 
      <active>1</active> 
      <visible>1</visible> 
     </article_one> 
     </pages> 
    </articles> 
    </nav> 
</zend-config> 

2)导航(在布局):

$config = new Zend_Config_Xml(APPLICATION_PATH . '/configs/navigation.xml', 'nav'); 
$nav = new Zend_Navigation($config); 
$view = new Zend_View(); 
$view->navigation($nav); 
echo $view->navigation()->menu(); 

3)面包屑(在文章控制器):

public function init() { 
     $uri = $this->_request->getPathInfo(); 
     $activeNav = $this->view->navigation()->findByUri($uri); 
     $activeNav->class = "selected"; 
     $activeNav->active = true; 
    } 

4)面包屑(在布局):

//Doesn't display anything[/B] 
echo $view->navigation()->breadcrumbs()->setLinkLast(true); 

在此先感谢您的帮助!

+2

不确定breadcrumps与uri一起工作。我认为你需要为你的导航指定控制器和动作标签。 – Marcin 2011-03-22 23:37:52

+0

谢谢,就是这样! – 2011-03-23 18:36:53

回答

1

对于什么参数的URI?
哪里参数controller & action

你可以看看这里http://framework.zend.com/manual/ru/zend.view.helpers.html 或源代码Zend/View/Helper/Navigation/Breadcrumbs.php

+0

谢谢!我需要在navigation.xml文件中指定控制器,操作和参数。 – 2011-03-23 18:37:50

0

只是指出这一点,Actualli面包与URI工作。

的问题是,$this->view->navigation()->findByUri($uri)返回一个空对象; ,因为即使它安装在bootstrap中也没有看到。

在引导文件就可以解决这个问题,添加Zend_Registry::set('Zend_Navigation', $navigation);

干杯

0

尝试增加/的URL。我也有同样的问题。