繁体   English   中英

ZF2导航问题

[英]Issue with ZF2 Navigation

我有一个名为Member的模块,并且其中有两个Controller Member和Registration。

我需要一个类似于“查看成员”->“编辑成员”和“成为成员”链接的菜单。

路线如下:

'router' => array(
    'routes' => array(
        'member' => array(
            'type' => 'segment',
            'options' => array(
                'route' => '/member[/:action]',
                'constraints' => array(
                    'action' => '[a-zA-Z0-9_-]*',
                ),
                'defaults' => array(
                    'controller' => 'Member\Controller\Member',
                    'action' => 'index',
                ),
            ),
            'may_terminate' => true,
            'child_routes' => array(
                'registration' => array(
                    'type' => 'segment',
                    'options' => array(
                        'route' => '/registration[/:action]',
                        'defaults' => array(
                        ),
                    ),
                ),  
            ),
        ),
        'registration' => array(
            'type' => 'segment',
            'options' => array(
                'route' => '/registration[/:action]',
                'constraints' => array(
                    'action' => '[a-zA-Z0-9_-]*',
                ),
                'defaults' => array(
                    'controller' => 'Member\Controller\Registration',
                    'action' => 'index',
                ),
            ),
        ),
    ),
),

导航代码为:

'navigation' => array(
    'default' => array(
        array(
            'label' => 'Home',
            'route' => 'home',
            'type' => 'Zend\Navigation\Page\Mvc',
        ),
        array(
            'label' => 'Member', // 'Page #1',
            'route' => 'member', // 'page-1',
            'action'     => 'index',
            'resource'  => 'Member\Controller\Member',
            'pages' => array(
                array(
                    'label' => 'Edit', // 'Child #1',
                    'route' => 'member',
                    'params' => array('action' => 'memberEdit'),
                    'resource'  => 'Member\Controller\Member',
                ),
            ),
        ),
        array(
            'label' => 'Become a member',
            'route' => 'registration',
            'controller' => 'registration',
            'action' => 'index',
            'resource' => 'Member\Controller\Registration',
        ),
    ),
),

服务经理是:

    'service_manager' => array(
    'factories' => array(
        'navigation' => 'Zend\Navigation\Service\DefaultNavigationFactory',
    ),
),

布局代码为:

$this->navigation('navigation')
                                ->menu()
                                ->setMinDepth(0)
                                ->setMaxDepth(1)
                                ->setUlClass('nav navbar-nav');

除“成为会员”链接外,所有链接均有效。 当您单击它时会显示一条错误消息

Route with name "default" not found

请帮忙。

更改路线-

'router' => array( 'routes' => array( 'registration' => array( 'type' => 'segment', 'options' => array( 'route' => '/registration[/:action]', 'constraints' => array( 'action' => '[a-zA-Z0-9_-]*', ), 'defaults' => array( 'controller' => 'Member\\Controller\\Registration', 'action' => 'index', ), ), ), 'member' => array( 'type' => 'segment', 'options' => array( 'route' => '/member[/:action]', 'constraints' => array( 'action' => '[a-zA-Z0-9_-]*', ), 'defaults' => array( 'controller' => 'Member\\Controller\\Member', 'action' => 'index', ), ), 'may_terminate' => true, 'child_routes' => array( 'registration' => array( 'type' => 'segment', 'options' => array( 'route' => '/registration[/:action]', 'defaults' => array( ), ), ),
), ), ), ),

这样,您可以同时使用registrationmember/registration路线。

希望对您有所帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM