在zf2中找到模块控制器时出错

时间:2014-06-11 22:33:38

标签: php zend-framework controller zend-framework2

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

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的新手,但我理解这意味着我的模块在名称空间或自动加载器中有错误,据说这是信息:

module.config controller routes

'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'))

关于堆栈溢出或其他地方的每个类似问题都没有解决这个问题,我花了好几个小时试图解决这个问题,我直接从我的应用程序的另一部分中的另一部分模拟该模块,将其剥离然后修改它,所以我没有必要改变,并遇到这些问题。

1 个答案:

答案 0 :(得分:2)

您对invokables控制器RoomController

的定义
'controllers' => array(
    'invokables' => array(
        'Rooms\Controller\Room' => 'Rooms\Controller\RoomController',
    ),
),

与您的控制器的类名RoomsController

不匹配
namespace Rooms\Controller;

class RoomsController extends AbstractActionController
{

将后者更改为class RoomController应修复错误

相关问题