加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

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

发布时间:2020-12-13 14:15:29 所属栏目:PHP教程 来源:网络整理
导读:使用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.p
使用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');

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读