我正在尝试在ZF 1.8项目中使用模块,但无法将模块的操作路由到工作。
这是一个例子,我创建路径“/ test”,指向模块'test',controller'ttt'和action'index':
$router->addRoute(
$name,
new Zend_Controller_Router_Route('test',
array('controller' => 'ttt',
'module' => 'test',
'action' => 'index'))
);
我初始化模块目录(创建diretory“ttt”,所需的控制器和视图类)并在引导期间指定它:
$front->addModuleDirectory(dirname(__FILE__) . '/modules');
但是当我打开像example.com/test这样的网址时,我收到的错误就像“消息:指定的控制器无效(ttt)”。
我的例子出了什么问题?
固定即可。 在application.ini中添加了以下行:
resources.frontController.moduleDirectory = APPLICATION_PATH "/modules"
答案 0 :(得分:3)
对于不在默认模块中的控制器,必须在控制器类名称前加上模块名称和下划线。
即
class Test_TttController extends Zend_Controller_Action
{
}
答案 1 :(得分:0)
您是否复制了另一个Controller类文件,将其重命名并忘记将类声明更改为文件中的TttController?如果控制器确实存在,那将会得到错误消息。确保它看起来像这样:
class TttController extends Zend_Controller_Action
{
...
当然,我可能会离开。