我遇到了一个问题,当我链接到我的模块时,控制器会抛出错误:
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'))
关于堆栈溢出或其他地方的每个类似问题都没有解决这个问题,我花了好几个小时试图解决这个问题,我直接从我的应用程序的另一部分中的另一部分模拟该模块,将其剥离然后修改它,所以我没有必要改变,并遇到这些问题。
答案 0 :(得分:2)
您对invokables
控制器RoomController
'controllers' => array(
'invokables' => array(
'Rooms\Controller\Room' => 'Rooms\Controller\RoomController',
),
),
与您的控制器的类名RoomsController
namespace Rooms\Controller;
class RoomsController extends AbstractActionController
{
将后者更改为class RoomController
应修复错误