Zend_Rest_Route 不适用于子目录控制器(例如 admin/questions)
Zend_Rest_Route not working for a sub-directory controller (e.g. admin/questions)
我正在尝试为子目录控制器定义 RESTful 路由。我希望能够为 admin/questions/*
的 url 创建路由。我的控制器是 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')
)
);
..所以我不认为我的文件夹结构或 class 名称有误。但是,我需要 RESTful 条我无法实现的路线。
您定义的 Zend_Rest_Route
路由在启用 Zend 模块的情况下有效。文档提到 "translating the HTTP method and the URI to a module, controller and action"。要启用模块,请在 application.ini
:
中添加以下两行
resources.modules[] =
resources.frontController.moduleDirectory = APPLICATION_PATH "/modules"
然后在 application/modules
中创建一个名为 admin/controllers
的目录,并在 application/modules/admin/controllers/QuestionsController.php
中创建你的 QuestionsController
。
您的应用程序的其余部分应该(希望)仍然作为 default
模块工作。
我正在尝试为子目录控制器定义 RESTful 路由。我希望能够为 admin/questions/*
的 url 创建路由。我的控制器是 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')
)
);
..所以我不认为我的文件夹结构或 class 名称有误。但是,我需要 RESTful 条我无法实现的路线。
您定义的 Zend_Rest_Route
路由在启用 Zend 模块的情况下有效。文档提到 "translating the HTTP method and the URI to a module, controller and action"。要启用模块,请在 application.ini
:
resources.modules[] =
resources.frontController.moduleDirectory = APPLICATION_PATH "/modules"
然后在 application/modules
中创建一个名为 admin/controllers
的目录,并在 application/modules/admin/controllers/QuestionsController.php
中创建你的 QuestionsController
。
您的应用程序的其余部分应该(希望)仍然作为 default
模块工作。