You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Yii2的yii\rest\UrlRule如何配置单复数混合的REST路由规则

问题原因

之前配置不生效的核心原因是yii\rest\UrlRule下的extraPatterns定义的路由,会自动拼接当前控制器的路由前缀。你写的GET users => user实际会被解析为匹配GET user/users路径,无法匹配根路径下的/users请求,所以访问会返回404。

正确配置

Yii2路由按照配置顺序从上到下匹配,排在前面的规则优先级更高。只需要在原有REST规则前新增一条独立规则匹配GET users请求,再保留关闭复数的REST规则即可,完整配置如下:

'rules' => [
    // 高优先级匹配GET users请求,指向用户列表接口
    'GET users' => 'user/index',
    [
        'class' => 'yii\rest\UrlRule',
        'controller' => 'user',
        'pluralize' => false,
    ],
]
匹配效果

配置后各接口路由表现符合预期:

  • GET users:返回全量用户列表
  • GET user/<id>:保持单数形式,返回指定ID的用户详情
  • POST user:正常创建新用户

如果不需要保留默认的GET user列表路由(避免多个路径指向同一个接口),可以在REST规则中加except参数移除默认列表路由:

[
    'class' => 'yii\rest\UrlRule',
    'controller' => 'user',
    'pluralize' => false,
    'except' => ['index'],
]

内容的提问来源于stack exchange,提问作者trejder

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.03 10:24:12