Php 请求的控制器无法映射到现有控制器类。zf3在一个模块中路由到多个控制器
当我试图在一个模块中创建到多个控制器的路由时 调用Php 请求的控制器无法映射到现有控制器类。zf3在一个模块中路由到多个控制器,php,model-view-controller,controller,routes,zend-framework3,Php,Model View Controller,Controller,Routes,Zend Framework3,当我试图在一个模块中创建到多个控制器的路由时 调用IndexController的indexAction()。但是,它不适用于车辆控制器。我试图调用工厂中的车辆控制器——未成功 'controllers' => [ 'factories' => [ Controller\IndexController::class => InvokableFactory::class, Controller\VehiclesController::cla
IndexController
的indexAction()。但是,它不适用于车辆控制器
。我试图调用工厂中的车辆控制器
——未成功
'controllers' => [
'factories' => [
Controller\IndexController::class => InvokableFactory::class,
Controller\VehiclesController::class => InvokableFactory::class,
],
],
使用ServiceManager
功能
'controllers' => [
'factories' => [
Controller\VehiclesController::class => function($sm){
$vehiclesService=$sm->get('Application\Model\VehiclesTable');
return new Controller\VehiclesController($vehiclesService);
}
],
],
您可能正在执行以下操作来调用module.config.php
'controllers' => [
'factories' => [
Controller\IndexController::class => InvokableFactory::class,
Controller\IndexController::class => InvokableFactory::class,
],
],
因此,您可能在工厂
键下使用相同的控制器名称两次。可能如上所述,也可能不同
因此,在controllers
键的factories
子键下定义它们一次,如下所示
'controllers' => [
'factories' => [
Controller\IndexController::class => InvokableFactory::class,
Controller\VehiclesController::class => InvokableFactory::class,
],
],
我刚刚调用了工厂
下的控制器,就像你的问题一样。也尝试使用ServiceManager
函数调用它,但也不起作用。您的应用程序中的data
文件夹中是否有任何缓存文件?如果是,请删除所有内容,然后重试。我看到您正在通过控制器的构造函数传递一些服务,为此,您必须为控制器创建一个工厂。在这种情况下,使用InvokableFactory::class
将不起作用。
'controllers' => [
'factories' => [
Controller\IndexController::class => InvokableFactory::class,
Controller\VehiclesController::class => InvokableFactory::class,
],
],