我遇到了一个zend 2导航错误,似乎找不到解决方案。搜索了所有内容,尝试了所有内容。。。。。
这是我的配置:
路线(Application/config/module.config.php)
:
'home' => array(
'type' => 'ZendMvcRouterHttpLiteral',
'options' => array(
'route' => '/',
'defaults' => array(
'controller' => 'ApplicationControllerIndex',
'action' => 'index',
),
),
),
工厂(Application/config/module.config.php)
:
'service_manager' => array(
'factories' => array(
'navigation' => 'ZendNavigationServiceDefaultNavigationFactory',
),
导航(Application/config/module.config.php)
:
'navigation' => array(
'default' => array(
array(
'label' => 'home',
'route' => 'home',
),
),
),
布局(Applicationviewlayoutlayout.phtml)
:
<?php echo $this->navigation('navigation')->menu(); ?>
错误:
Uncaught exception 'ZendNavigationExceptionInvalidArgumentException' with message 'Invalid argument: $route must be a non-empty string or null' in
/var/www/html/project/vendor/zendframework/zendframework/library/Zend/ServiceManager/ServiceManager.php on line 904
和
ZendNavigationExceptionInvalidArgumentException: Invalid argument: $route must be a non-empty string or null in /var/www/html/project/vendor/zendframework/zendframework/library/Zend/Navigation/Page/Mvc.php on line 397
上一个例外:
ZendServiceManagerExceptionServiceNotCreatedException: An exception was raised while
creating "navigation"; no instance returned in /var/www/html/project/vendor/zendframework/zendframework/library/Zend/ServiceManager/ServiceManager.php on line 904
问题出在哪里?我似乎无法让它工作,。。。
您的配置在这里看起来不错;尽管错误表明您正在将null
作为路由值传递到某个地方的Mvc
类。
请记住,如果您在其他模块(在module.config.php
中)中有任何其他导航配置,这些模块也将在引导过程中包含在工厂中。
我现在在尝试合并来自不同模块的多个导航配置时遇到另一个错误:无效参数:无法确定要实例化的类
错误是由于导航工厂不知道应该创建ZendNavigationPageMvc
还是ZendNavigationPageUri
。这意味着您在module.config.php
中的"导航"配置中缺少一些配置条目。
为了确保工厂能够创建正确的,您需要确保以下
-
URI页面-需要
uri
密钥 -
MVC页面-需要
route
密钥或一个(或两个)controller
和action
密钥
您可以在导航文档中阅读有关此方面的更多信息。