[英]Zend 2 Navigation rendering active class missing
我確實在渲染zf2中存在問題。 我沒有找到其他人遇到這個問題。 但是也許您有一個線索。
盡管似乎一切都配置正確,但由於一切正常,渲染zend導航不會將活動路徑標記為class =“ active”。
這是我的module.config.php的一部分:
'service_manager' => array(
'factories' => array(
'app_navigation' => 'Zend\Navigation\Service\DefaultNavigationFactory',
'User\Acl\Service' => 'User\Acl\ServiceFactory',
'User\Auth\Service' => 'User\Authentication\ServiceFactory',
),
),
//global config key for all navigation configurations
'navigation' => array(
//name of the DefaultNavigation created by DefaultNavigationFactory
'default' => array(
//config of first page
'welcome' => array(
'label' => 'Home',
'route' => 'welcome',
'controller' => 'People\Controller\PeopleController',
'action' => 'welcome',
'type' => 'uri',
'uri' => '/welcome',
'module' => 'TheGlobalDatabase',
),
...
這是路線:
'router' => array(
'routes' => array(
'welcome' => array(
'type' => 'segment',
'options' => array(
'route' => '/welcome',
'defaults' => array(
'controller' => 'People\Controller\People',
'action' => 'welcome',
),
),
),
我確實在布局中回顯導航,如下所示:
echo $this->navigation()->menu()->renderMenu('app_navigation',array('ulClass'=>'nav navbar-nav welcome'));
也許您有一個提示,還有什么要檢查的。
謝謝你們!
您在路線和導航中都缺少或不正確的配置。
導航
使用數組配置時,您將永遠不需要使用type
參數。 確定類型是uri
還是mvc
是導航工廠的工作。 只需刪除它的配置。
導航controller
應該是controller
的注冊服務名稱,而不是完全合格的類名稱。 'controller' => 'People\\Controller\\People'
另外,使用路由參數時, 無需在導航配置中指定controller
和action
。
通過這些更改,導航非常簡單。
'welcome' => array(
'label' => 'Home',
'route' => 'welcome'
);
路線
它可能是一條Literal
路線(因為沒有傳遞任何參數),並且您缺少may_terminate
參數,如果您希望在該路線上進行匹配,將需要該參數。
'welcome' => array(
'type' => 'literal',
'options' => array(
'route' => '/welcome',
'defaults' => array(
'controller' => 'People\Controller\People',
'action' => 'welcome',
),
),
'may_terminate' => true,
),
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.