Zend_Rest_Route不适用于子目录控制器(例如admin / questions)

时间:2015-04-18 11:46:21

标签: php zend-framework

我试图为子目录控制器定义RESTful路由。我希望能够在admin/questions/*为网址创建路由。我的控制器是Admin_QuestionsController:

- application
  - controllers
    -Admin
      QuestionsController.php (class Admin_QuestionsController)

以下是我为此控制器声明RESTful路由的方法:

$restRoute = new Zend_Rest_Route($front, array(), array(
    'admin' => array('questions')
));
$router->addRoute('rest', $restRoute);

..从文档中我无法看到我做错了什么 - http://framework.zend.com/manual/1.12/en/zend.controller.router.html#zend.controller.router.routes.rest。但是,我收到以下错误:

Invalid controller specified (admin) 

当我声明然后不是休息路线时,我可以让路线工作:

$router->addRoute('admin_questions',
    new Zend_Controller_Router_Route( '/admin/questions', array(
        'controller' => 'Admin_Questions', 
        'action' => 'index')
    )
);

..所以我不认为我的文件夹结构错误,或类名。但是,我需要RESTful路线,这是我无法实现的。

1 个答案:

答案 0 :(得分:3)

您已定义的Zend_Rest_Route路由,如果启用了Zend模块,则有效。该文档提到“将HTTP方法和URI转换为模块,控制器和操作”。要启用模块,请在application.ini中添加以下两行:

resources.modules[] =
resources.frontController.moduleDirectory = APPLICATION_PATH "/modules"

然后在名为application/modules的{​​{1}}中创建一个目录,并在admin/controllers中创建QuestionsController

应用程序的其余部分(希望)仍可用作application/modules/admin/controllers/QuestionsController.php模块。