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

Mar*_*tyn 7 php zend-framework

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

- application
  - controllers
    -Admin
      QuestionsController.php (class Admin_QuestionsController)
Run Code Online (Sandbox Code Playgroud)

下面是我为这个控制器声明我的RESTful路由的方法:

$restRoute = new Zend_Rest_Route($front, array(), array(
    'admin' => array('questions')
));
$router->addRoute('rest', $restRoute);
Run Code Online (Sandbox Code Playgroud)

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

Invalid controller specified (admin) 
Run Code Online (Sandbox Code Playgroud)

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

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

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

Wou*_*len 3

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

resources.modules[] =
resources.frontController.moduleDirectory = APPLICATION_PATH "/modules"
Run Code Online (Sandbox Code Playgroud)

application/modules然后在named中创建一个目录admin/controllers,并在QuestionsController.in中创建您的目录application/modules/admin/controllers/QuestionsController.php

应用程序的其余部分应该(希望)仍然像default模块一样工作。