我得到了一个zend 2导航错误,似乎无法找到它的解决方案。搜索了一切,尝试了一切......
这是我的配置:
路线(Application/config/module.config.php)
:
'home' => array(
'type' => 'Zend\Mvc\Router\Http\Literal',
'options' => array(
'route' => '/',
'defaults' => array(
'controller' => 'Application\Controller\Index',
'action' => 'index',
),
),
),
工厂(Application/config/module.config.php)
:
'service_manager' => array(
'factories' => array(
'navigation' => 'Zend\Navigation\Service\DefaultNavigationFactory',
),
导航(Application/config/module.config.php)
:
'navigation' => array(
'default' => array(
array(
'label' => 'home',
'route' => 'home',
),
),
),
布局(Application\view\layout\layout.phtml)
:
<?php echo $this->navigation('navigation')->menu(); ?>
错误:
Uncaught exception 'Zend\Navigation\Exception\InvalidArgumentException' 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
和
Zend\Navigation\Exception\InvalidArgumentException: 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
上一个例外:
Zend\ServiceManager\Exception\ServiceNotCreatedException: 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
有什么问题?我似乎无法让它工作,......
答案 0 :(得分:1)
您的配置在这里看起来很好;虽然错误表示您将null
作为路由值传递给某个地方的Mvc
类。
请记住,如果您在其他模块(module.config.php
)中有任何其他导航配置,这些模块在引导期间也将包含在工厂中。
我在尝试合并来自不同模块的多个导航配置时出现了另一个错误:无效参数:无法确定要实例化的类
错误是由于导航工厂不知道它是应该创建Zend\Navigation\Page\Mvc
还是Zend\Navigation\Page\Uri
。这意味着您在module.config.php
中的“导航”配置中缺少一些配置条目。
要确保工厂可以创建正确的工厂,您需要确保以下
uri
密钥route
密钥或一个(或两个)controller
和action
密钥