Zend Navigation,如何在网址中使用params?我尝试了导航中的参数没有变化:(

时间:2011-05-18 13:55:32

标签: zend-framework zend-navigation

我遇到了zend导航的问题。 我使用zend导航,当我在url中调用类似的东西时它就可以了:

www.website/article_new, www.website/article_list, 
www.website/friends_new, ...

但我想用这样的一些参数调用该网站:

www.website/article_new/123452/2335/45633246, 
www.website/friends_new/23453/3453524/34554

我试着设置一些参数,但这不起作用。

我将导航放在引导程序中,并在布局中使用它。它是带有一些面包的导航,其中display:true和display:false。 这是我的引导程序中的代码:

$navigation = new Zend_Navigation(array(
                                    array(
                                        'label' => 'Home',
                                        'controller' => 'index',
                                        'action' => 'index',
                                        'class' => 'menuF'
                                    ),
                                    array(
                                        'label' => 'Article',
                                        'controller' => 'Article_List',
                                        'id' => 'article',
                                        'action' => 'index',
                                        'class' => 'menu',
                                        'pages' => array(
                                            array(
                                            'label' => 'Neu',
                                            'id' => 'article',
                                            'controller' => 'Article_New',
                                            'action' => 'index',
                                            'class' => 'submenu'
                                            )
                                        )
                                    ).....

来自layout.phtml的代码。在这段代码中,我展示了是否显示了面包屑。

foreach($container as $page) {
                    $par = $active;
                    if ($page != $active && $page->getClass()!='menu' && $page->getClass()!='menuF' && $page->getID()!=$par->getID()) {
                        $page->setClass('submenu');

                    } else {
                        $found = $container->findAllBy('ID', $active->getID());
                        foreach($found AS $p){
                            if($p->getClass()!='menu'&&$p->getClass()!='menuF'){
                                $p->setClass('sub');
                            }
                        }
                    }
                }
                echo $this->navigation()->menu()->renderMenu($this->nav);

希望有人可以帮助我! 谢谢大家! 最好的祝福 汤姆

2 个答案:

答案 0 :(得分:0)

我发现自己错了!

我想打电话给这样的话: www.website/article/344435/23452345

肯定这会引发一个错误,因为没有任何行动,如344435

有这样的事情 www.website/article/show/var1/2435234/var2/2345234352 好的。

剩下的就是路由!

对所有人抱歉! 伟大的汤姆

答案 1 :(得分:0)

尝试使用路由名称而不是模块,控制器和操作系统。

array(
 'label' => 'Article',
 'route' => 'Article_List',
 'id' => 'article',
 'class' => 'menu',
 ...
)

路由器将处理所有URL解析并返回正确的变量。