php – 如何设置分层Zend Rest路由?

前端之家收集整理的这篇文章主要介绍了php – 如何设置分层Zend Rest路由?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
使用Zend框架,我正在为以下模式组织的资源构建REST api的路由:

> http://example.org/users/
> http://example.org/users/234
> http://example.org/users/234/items
> http://example.org/users/234/items/34

如何使用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');

猜你在找的PHP相关文章