yii2如何在GroupUrlRule中使用REST UrlRule

时间:2016-03-17 16:52:17

标签: routes yii2

我有以下GroupUrlRule:

[
    'class' => 'yii\web\GroupUrlRule',
    'prefix' => '_api',
    'routePrefix' => '',
    'rules' => [
        'GET /v1/users' => 'v1/user/list',
        'GET /v1/users/<id:\w+>' => 'v1/user/view'
     ]
]

由于某种原因,这不起作用。但是,如果我在主URLManager规则中使用以下内容:

'GET _api/v1/users' => /v1/user/list',
'GET _api/v1/users/<id:\w+>' => 'v1/user/view'

路线有效。我不明白为什么相同的路线不能在GroupUrlRule中工作。如何使路由与GroupUrlRule一起使用?

1 个答案:

答案 0 :(得分:1)

在深入研究Yii2 API和源代码之后,我终于找到了问题所在。 GroupUrlRoute在数组键的开头添加前缀,而不测试键的内容。这就是为什么我试图查看UrlRoute中是否有任何可能有帮助的其他参数的原因:

 ['class' => 'yii\web\GroupUrlRoute',
  'prefix' => '_api/v1',
  'routePrefix' => 'v1',
  'rules' => [
      ['pattern' => 'users',
       'route' => 'user/list',
       'verb' => 'GET'
       // if you need multiple, you can use array like ['GET', 'POST']
       ]
  ]
 ]