Yii URL模式问题

时间:2013-11-20 17:41:02

标签: php yii url-rewriting

我使用yii为REST API构建定义了以下url模式。

      '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 /后偏移= 5&安培;限制= 10

以上工作,但以下不起作用。

http://example.com/RestApi/index.php/ API /后/偏移/ 5 /限制/ 10

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

由于

更新

我得到的错误是第二种方式,

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

1 个答案:

答案 0 :(得分: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规则以避免覆盖其他规则。