【问题标题】:ZF2 get another navigation in global.phpZF2 在 global.php 中获得另一个导航
【发布时间】:2013-07-31 18:24:04
【问题描述】:

这是我在 global.php 中的导航

'navigation' => array(
            'default' => array(
                    'loja' => array(
                            'label' => 'Loja',
                            'route' => 'loja',
                            'params' => array('action'=>'index'),
                            'pages' => array(
                                    'estoque' => array(
                                            'label' => 'Estoque',
                                            'params' => array('action'=>'index'),
                                            'action'=>'index',
                                            'id' => 'estoque',
                                            'route' => 'estoque',
                                    )),
                    ),
               'suport'=> array(
                    'test' => array(
                            'label' => 'Loja',
                            'route' => 'loja',
                            'params' => array('action'=>'index'),
                            'pages' => array(
                                    'estoque' => array(
                                            'label' => 'Estoque',
                                            'params' => array('action'=>'index'),
                                            'action'=>'index',
                                            'id' => 'estoque',
                                            'route' => 'estoque',
                                    )),
                    ),),

当我调用导航“默认”时,我想调用导航“支持”,我该怎么做? 我在 layout.phtml 中的代码 ..

echo $this->navigation('Navigation')->menu()->setUlClass('nav dropdown-submenu')->renderMenu();

谢谢:)

【问题讨论】:

    标签: php zend-framework frameworks navigation zend-framework2


    【解决方案1】:

    首先创建一个容器:

        <?php $container = $this->navigation()->findOneByLabel('support');?>
    

    在此处阅读有关查找节点的更多信息:http://framework.zend.com/manual/2.2/en/modules/zend.navigation.containers.html

    比使用它:

        <?php echo $this->navigation()->menu()->renderMenu($container);?>
    

    (把它放在你的视图脚本中。)

    在文档中了解更多信息:http://framework.zend.com/manual/2.2/en/modules/zend.navigation.view.helper.menu.html

    【讨论】:

      【解决方案2】:

      你能在视图脚本中试试这个吗:

      像这样创建容器

      <?php $container = $this->navigation('support')->getContainer(); ?>
      

      回显容器以使用这个:

      <?php echo $this->navigation($container); ?>
      

      【讨论】:

        【解决方案3】:

        通过扩展Zend\Navigation\Service\DefaultFactory创建您自己的导航工厂

        namespace Application\Navigation\Service;
        
        use Zend\Navigation\Service\DefaultNavigationFactory;
        
        class MyNavigation extends DefaultNavigationFactory
        {
            public function getName() {
                return 'suport';
            }
        }
        

        在 Module.php 中

        public function getServiceConfig()
        {
            return array(
                'invokables' => array(
                    'my_navigation' => 'Application\Navigation\Service\MyNavigation'
                }
            }
        }
        

        现在您可以使用导航echo $this-&gt;navigation('my_navigation')-&gt;menu()

        【讨论】:

          猜你喜欢
          • 2020-11-27
          • 1970-01-01
          • 2021-10-26
          • 2012-10-09
          • 1970-01-01
          • 2020-05-21
          • 1970-01-01
          • 1970-01-01
          • 2022-01-22
          相关资源
          最近更新 更多