zf2中的错误查找模块控制器


Error finding module controller in zf2

我遇到了一个问题,当我链接到我的模块控制器抛出一个错误:

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应该可以修复错误