目前我正在使用ZF2中的Zend Navigation,我遇到了以下问题
在我的应用程序模块中,我有以下配置(默认骨架应用程序)
....
'router' => array(
'routes' => array(
'home' => array(
'type' => 'Zend\Mvc\Router\Http\Literal',
'options' => array(
'route' => '/',
'defaults' => array(
'controller' => 'Application\Controller\Index',
'action' => 'index',
),
),
),
// The following is a route to simplify getting started creating
// new controllers and actions without needing to create a new
// module. Simply drop new controllers in, and you can access them
// using the path /application/:controller/:action
'application' => array(
'type' => 'Literal',
'options' => array(
'route' => '/application',
'defaults' => array(
'__NAMESPACE__' => 'Application\Controller',
'controller' => 'Index',
'action' => 'index',
),
),
'may_terminate' => true,
'child_routes' => array(
'default' => array(
'type' => 'Segment',
'options' => array(
'route' => '/[:controller[/:action]]',
'constraints' => array(
'controller' => '[a-zA-Z][a-zA-Z0-9_-]*',
'action' => '[a-zA-Z][a-zA-Z0-9_-]*',
),
'defaults' => array(
),
),
),
),
),
'info' => array(
'type' => 'Zend\Mvc\Router\Http\Literal',
'options' => array(
'route' => '/phpinfo',
'defaults' => array(
'controller' => 'Application\Controller\Index',
'action' => 'info',
),
),
),
),
),
....
'navigation' => array(
'default' => array(
array(
'label' => 'Home',
'route' => 'home',
'order' => -1,
'pages' => array(
array( //<-- this isn't working gives a link to /application
'label' => 'Telefoonboek',
'route' => 'application',
'module' => 'application',
'controller' => 'telefoonboek',
'action' => 'index',
),
array( //<-- this works
'label' => 'Telefoonboek2',
'uri' => '/application/telefoonboek',
),
array( //<-- this works
'label' => 'info',
'route' => 'info',
),
),
),
),
),
....
我目前只能在我为菜单中的“每个”项目添加路线时才能使导航工作。但这是一种奇怪的解决方案。
这是使菜单正常工作的正确方法,还是我需要对页面做些喜欢的事情?
答案 0 :(得分:2)
我实际上让它自己工作:)而不是使用父(应用程序)路由我需要指向子路由应用程序/默认问题已解决
所以配置现在看起来像
....
'navigation' => array(
'default' => array(
array(
'label' => 'Home',
'route' => 'home',
'order' => -1,
'pages' => array(
array( //<-- this NOW works too
'label' => 'Telefoonboek',
'route' => 'application/default',
'controller' => 'telefoonboek',
'action' => 'index',
),
array( //<-- this works
'label' => 'Telefoonboek2',
'uri' => '/application/telefoonboek',
),
array( //<-- this works
'label' => 'info',
'route' => 'info',
),
),
),
),
),
....