我遇到了一个问题,当我链接到我的模块控制器抛出一个错误:
Fatal error: Class 'Rooms'Controller'RoomController' not found in C:'wamp'www'smtest'vendor'zendframework'zendframework'library'Zend'ServiceManager'AbstractPluginManager.php on line 170
现在我仍然是新的ZF2,但我的理解是,这意味着我的模块有一个错误的名称空间或在自动加载器,也就是说,这里的信息:
模块。配置控制器路由
'controllers' => array(
'invokables' => array(
'Rooms'Controller'Room' => 'Rooms'Controller'RoomController',
),
),
module.php
namespace Rooms;
class Module
{
public function getConfig()
{
return include __DIR__ . '/config/module.config.php';
}
public function getAutoloaderConfig()
{
return array(
'Zend'Loader'StandardAutoloader' => array(
'namespaces' => array(
__NAMESPACE__ => __DIR__ . '/src/' . __NAMESPACE__,
),
),
);
}
}
RoomController.php
namespace Rooms'Controller;
class RoomsController extends AbstractActionController
{
private $usersTable;
//retrieve
public function indexAction()
{
return new ViewModel();
}
从主页到模块的链接
$this->url('room/default', array('controller' => 'room', 'action' => 'index'))
在堆栈溢出或其他地方的每个类似的问题都没有解决这个问题,我花了几个小时试图解决这个问题,我直接从我的应用程序的另一部分复制了另一个模块,剥离它然后修改它,所以我不必改变那么多,遇到这些问题。
您对invokables
控制器RoomController
的定义
'controllers' => array(
'invokables' => array(
'Rooms'Controller'Room' => 'Rooms'Controller'RoomController',
),
),
与控制器RoomsController
的类名不匹配
namespace Rooms'Controller;
class RoomsController extends AbstractActionController
{
将后者更改为class RoomController
应该可以修复错误