首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ZF2 -多导航导航

ZF2 -多导航导航
EN

Stack Overflow用户
提问于 2012-11-20 16:16:59
回答 2查看 3.4K关注 0票数 5

有可能有两种不同的导航方式吗?

例如:

代码语言:javascript
复制
//in module.config.php
'service_manager'=>array(
        'factories'=>array(
            'navigation1'=>'Zend\Navigation\Service\DefaultNavigationFactory',
            'navigation2'=>'Zend\Navigation\Service\DefaultNavigationFactory',
        ),
    ),
    'navigation'=>array(
        'navigation1'=>array(
            'home'=>array('type' => 'mvc','route' => 'home','active'=>false,'label' => 'Home','title' => 'Home',
                'pages'=>array(
                    'contact'=>array('type' => 'mvc','route'=>'contact','active'=>false,'label'=>'Contact','title' =>'Contact'),
                )
            ),
        ),
        'navigation2'=>array(
            'home'=>array('type'=>'mvc','route'=>'home','active'=>false,'label'=>'Home','title'=>'Home',
            'contact'=>array('type'=>'mvc','route'=>'faq','active'=>false,'label'=>'Faq','title'=>'Faq'),
            ),
        ),

//Dans laout
<?php echo $this->navigation()->menu('navigation1')->setMinDepth(0);?>
<hr />
<?php echo $this->navigation()->menu('navigation2')->setMinDepth(0);?>

我想要两个不同的菜单与不同的页面,但这个方法不运行。

每个人都有自己的想法?

谢谢

伯扎特

EN

回答 2

Stack Overflow用户

发布于 2012-11-21 13:10:52

您需要为每个导航组提供一个自定义工厂类。例如,看看ZfcAdmin是如何做到这一点的:

  1. 创建自定义工厂类
  2. 寄存器AdminNavigationFactory // in Module.php公共函数getServiceConfig() {返回数组(‘工厂’=>数组( 'admin_navigation‘=> => ),);} 来源:https://github.com/ZF-Commons/ZfcAdmin/blob/master/Module.php#L90
  3. 在您的模块的配置中,在工厂的getName方法中指定的键下定义导航树。例如,ZfcUserAdmin是如何将自己添加到ZfcAdmin菜单中的: ‘导航’=>数组(‘=>’=>数组(‘zfcadmin’=>数组(‘标签’=>‘用户’)、‘路由’‘=>’zfcadmin/列表‘、'pages’=>数组(‘创建’=>数组‘(’标签‘=>’新用户‘、’路由‘=>’管理/创建‘),)、)、)、 来源:https://github.com/Danielss89/ZfcUserAdmin/blob/master/config/module.config.php
票数 6
EN

Stack Overflow用户

发布于 2013-04-11 20:20:45

/vendor/MyNamespace/library/MyNamespace/Navigation/Service/SecondaryNavigationFactory.php

代码语言:javascript
复制
namespace MyNamespace\Navigation\Service;

use Zend\Navigation\Service\DefaultNavigationFactory;

class SecondaryNavigationFactory extends DefaultNavigationFactory {

    protected function getName() {
        return 'secondary';
    }

}

/config/autoload/global.php

代码语言:javascript
复制
return array(
    'service_manager' => array(
        'factories' => array(
            'navigation' => 'Zend\Navigation\Service\DefaultNavigationFactory',
            'secondary' => 'MyNamespace\Navigation\Service\SecondaryNavigationFactory',
        ),
    ),
    'navigation' => array(
        'default' => array(
            array(
                'label' => 'Item-1.1',
                'route' => 'foo',
            ),
            array(
                'label' => 'Item-1.2',
                'route' => 'bar',
            ),
        ),
        'secondary' => array(
            array(
                'label' => 'Item-2',
                'route' => 'baz',
            ),
        ),
    ),
);

/module/Application/view/layout/layout.phtml

代码语言:javascript
复制
<?php echo $this->navigation('navigation')->menu(); ?>
<?php echo $this->navigation('secondary')->menu(); ?>
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13477412

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档