首页 > 解决方案 > Yii2 未找到嵌套休息规则

问题描述

我似乎在使用tunecino\nestedrest\UrlRule包时遇到问题。我正在使用基本的 Yii2 应用程序,并且正在尝试将 api 创建为模块。

我当前的 urlManager 如下所示:

'urlManager' => [
    'class' => 'yii\web\UrlManager',
    'rules' => require(__DIR__ . '/routes.php'),
    'enablePrettyUrl' => true,
    'baseUrl' => $baseUrl,
    'showScriptName' => false,
    'enableStrictParsing' => true,
],

我的路线如下所示:

 return [
        '' => '/',
        'v1' => 'v1/',

        [
            'class' => 'yii\rest\UrlRule',
            'controller' => ['v1/game','v1/server']
        ]
        [
            'class' => 'tunecino\nestedrest\UrlRule',
            'resourceName' => 'game',
            'modulePrefix' => 'v1',
            'modelClass' => 'app\modules\v1\models\Game',
            'relations' => ['servers']
        ],
        [
            'class' => 'tunecino\nestedrest\UrlRule',
            'resourceName' => 'server',
            'modulePrefix' => 'v1',
            'modelClass' => 'app\modules\v1\models\Server',
            'relations' => ['game']
        ],
    ]

The:$baseUrl总是包含:$baseUrl = str_replace('/web', '', (new Request)->getBaseUrl());

该 api 是路径v1下的一个模块。serverlist-api/modules/v1有所有的模型,控制器等。

尽管如此,我似乎总是在使用以下方式访问网站时收到 404:http://localhost/serverlist-api/v1/servers/

有谁知道问题的原因可能是什么?

//编辑。发现扩展应该与基本的 UrlRules 一起工作,但是如果我添加它们,请求仍然会抛出 404。

标签: restyii2routeshttp-status-code-404

解决方案


推荐阅读