【问题标题】:Yii URL pattern issueYii URL 模式问题
【发布时间】:2013-11-20 17:41:01
【问题描述】:

我有一个如下定义的 url 模式,用于使用 yii 构建 REST API。

      'urlManager'=>array(
      'urlFormat'=>'path',
      'rules'=>array(
                      array('api/default/list', 'pattern'=>'api/<model:\w+>', 'verb'=>'GET'),
                      array('api/default/view', 'pattern'=>'api/<model:\w+>/<id:\d+>', 'verb'=>'GET'),
                      array('api/default/update', 'pattern'=>'api/<model:\w+>/<id:\d+>', 'verb'=>'PUT'),
                      array('api/default/delete', 'pattern'=>'api/<model:\w+>/<id:\d+>', 'verb'=>'DELETE'),
                      array('api/default/create', 'pattern'=>'api/<model:\w+>', 'verb'=>'POST'),
      '<controller:\w+>/<action:\w+>'=>'<controller>/<action>',
      ),
      ),

我现在正在尝试的是,

http://example.com/RestApi/index.php/api/post?offset=5&limit=10

上述方法有效,但以下方法无效。

http://example.com/RestApi/index.php/api/post/offset/5/limit/10

我怎样才能让它像第二种方式一样工作?需要对 Url Manager 进行哪些更改?

谢谢

更新

第二种方法的错误是,

无法解析请求“api/post/offset/5/limit/10”。

【问题讨论】:

  • 您是否设置了 .htaccess 文件
  • @crafter 不。我没有。

标签: php yii url-rewriting


【解决方案1】:

你可以试试这个:

 'urlManager'=>array(
      'urlFormat'=>'path',
      'rules'=>array(
                      array('api/default/view', 'pattern'=>'api/<model:\w+>/<id:\d+>/*', 'verb'=>'GET'),

                      array('api/default/list', 'pattern'=>'api/<model:\w+>/*', 'verb'=>'GET'),

            .............
      ),
  ),

我移动了api/default/view 规则以避免覆盖其他规则。

【讨论】:

猜你喜欢
  • 2014-08-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-04-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多