Php ZF2导航问题
我有一个名为Member的模块,其中有两个控制器,分别是Member和Registration 我需要一个菜单,这将像“查看成员”->“编辑成员”和“成为成员”链接 路线如下:Php ZF2导航问题,php,zend-framework2,Php,Zend Framework2,我有一个名为Member的模块,其中有两个控制器,分别是Member和Registration 我需要一个菜单,这将像“查看成员”->“编辑成员”和“成为成员”链接 路线如下: 'router' => array( 'routes' => array( 'member' => array( 'type' => 'segment', 'options' => array(
'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',
),
),
),
$this->navigation('navigation')
->menu()
->setMinDepth(0)
->setMaxDepth(1)
->setUlClass('nav navbar-nav');
服务经理是:
'service_manager' => array(
'factories' => array(
'navigation' => 'Zend\Navigation\Service\DefaultNavigationFactory',
),
),
布局代码为:
'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',
),
),
),
$this->navigation('navigation')
->menu()
->setMinDepth(0)
->setMaxDepth(1)
->setUlClass('nav navbar-nav');
除“成为会员”链接外,所有链接均有效。当您单击它时,会显示一条错误消息
Route with name "default" not found
请帮忙。更改路线-
“路由器”=>阵列(
“路由”=>数组(
'注册'=>数组(
'类型'=>'段',
“选项”=>数组(
“路由”=>“/注册[/:操作]”,
'约束'=>数组(
“行动”=>“[a-zA-Z0-9_u-]*”,
),
“默认值”=>数组(
“控制器”=>“成员\控制器\注册”,
“操作”=>“索引”,
),
),
),
'成员'=>数组(
'类型'=>'段',
“选项”=>数组(
“路由”=>“/成员[/:操作]”,
'约束'=>数组(
“行动”=>“[a-zA-Z0-9_u-]*”,
),
“默认值”=>数组(
“控制器”=>“成员\控制器\成员”,
“操作”=>“索引”,
),
),
“may_terminate”=>true,
“子路由”=>数组(
'注册'=>数组(
'类型'=>'段',
“选项”=>数组(
“路由”=>“/注册[/:操作]”,
“默认值”=>数组(
),
),
),
),
),
),
),
这样,您可以同时使用注册
和会员/注册
路线
我希望这会有所帮助。根据正在检查的比赛路线,它总是从上到下的。如果它得到了匹配,那么它将不会进一步检查它。在您的代码中,
注册
可以是成员
下的子路由,也可以是单独的路由。因此,只需将注册
路线写在成员
路线上方(之前)。