php – 如何设置分层Zend Rest路由?
使用Zend框架,我正在为以下模式组织的资源构建REST api的路由:
> http://example.org/users/ 如何使用Zend_Rest_Route设置? 以下是我在bootstrap.php文件中为用户资源(users /:id)设置路由的方法: $this->bootstrap('frontController'); $frontController = Zend_Controller_Front::getInstance(); $restRoute = new Zend_Rest_Route($frontController); $frontController->getRouter()->addRoute('default',$restRoute); [据我所知,这是捕获所有路由,所以用户/ 324 / items / 34将导致参数设置为id = 324和items = 34,并且所有内容都将映射到Users(前端模块)模型.从那里我想我可以只是测试项目参数,并在获取请求上检索用户#324的项目#34.]< ===我刚刚检查它,似乎没有这样工作: 处理/用户/ 234 / items / 43和 var_dump($this->_getAllParams()); 在其余控制器的获取动作中得到以下输出: array(4) { ["controller"]=> string(5) "users" ["action"]=> string(3) "get" [2]=> string(5) "items" ["module"]=> string(7) "default"] } 不知怎的,两个ids都丢了 任何人?
AFAIK,Zend_Rest_Route中没有功能,可以让你做这样的事情.有一个建议,但不确定何时实施.您可以在Bootstrap中添加此设置来设置此自定义路由.
$front = $this->getResource('FrontController'); $testRoute = new Zend_Controller_Router_Route( 'users/:user_id/items/:item_id',array( 'controller' => 'users','action' => 'item','module' => 'default' ) ); $front->getRouter()->addRoute('test',$testRoute); user_id或item_id在UsersController中的itemAction中可用作参数: $user_id = $this->_request->getParam('user_id'); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |