1
현재 응용 프로그램 설치의 경우 표준 컨트롤러 및 나머지 컨트롤러에 대한 라우팅을 만들려고합니다.나머지 하위 폴더에 대한 젠드 프레임 워크 경로
이것은 내 구조입니다. 나의 현재 설정에서
/admin/module/controller/action
:
/module/admin_controller/action
내가 이것을 변경하려면 :
/application
/modules
/module
/controllers
/Admin
/Api
는 관리자 하위 폴더 내에서 컨트롤러를 호출하려면
/* application.ini */
;Default route
resources.router.routes.defaultmodule.type = Zend_Controller_Router_Route_Module
resources.router.routes.defaultmodule.defaults.module = "default
; APi route
resources.router.routes.api.type = Zend_Controller_Router_Route
resources.router.routes.api.route = ":api"
resources.router.routes.api.reqs.api = "api"
resources.router.routes.apichain.type = Zend_Controller_Router_Route_Chain
resources.router.routes.apichain.chain = "api, defaultmodule"
; Admin route
resources.router.routes.admin.type = Zend_Controller_Router_Route
resources.router.routes.admin.route = ":admin"
resources.router.routes.admin.reqs.admin = "admin"
resources.router.routes.adminchain.type = Zend_Controller_Router_Route_Chain
resources.router.routes.adminchain.chain = "admin, defaultmodule"
/* Plugin */
class Pwb_Plugin_ControllerRoute
extends Zend_Controller_Plugin_Abstract
{
public function routeShutdown(Zend_Controller_Request_Abstract $request)
{
if ($request->getParam('admin')) {
$admin_controller = $request->getParam('admin') . '_' . $request->getControllerName();
$request->setControllerName($admin_controller);
}
if ($request->getParam('api')) {
$admin_controller = $request->getParam('api') . '_' . $request->getControllerName();
$request->setControllerName($admin_controller);
}
}
}
/* Module Bootstrap */
class Acl_Bootstrap
extends Zend_Application_Module_Bootstrap
{
protected function _initRestRoute()
{
$this->bootstrap('frontController');
$frontController = Zend_Controller_Front::getInstance();
$restRoute = new Zend_Rest_Route(
$frontController,
array(),
array(
'acl' => array(
'api_role'
))
);
$frontController->getRouter()->addRoute('restAcl', $restRoute);
}
}
여기서 문제는 정말로 그 som e API 폴더의 컨트롤러는 모두 있지만 나머지는 아닙니다.
/api/acl/role이 예상대로 indexAction으로 올바르게 라우팅됩니다.
/api/acl/role/1은 getAction으로 라우팅 할 것으로 예상되는 "1"동작을 찾고 있습니다.
모듈 부트 스트랩의 Zend_Route_Rest를 어떻게 이러한 규칙 집합에 통합 할 수 있습니까?
모든 도움을 주시면 감사하겠습니다.
API는 모듈 관리자/API에 대한 고정 경로를 만들었습니다? 그리고 acl은 컨트롤러인가? – emaillenin
죄송합니다, acl은 모듈이며 Api는 컨트롤러 하위 폴더입니다 –
일반적으로 모듈 이름을 먼저 입력 한 다음 컨트롤러 이름을 입력하십시오. – emaillenin