yii2 模块 class 必须正确命名空间

yii2 Module class must be properly namespaced

我已将 /frontend 文件夹复制到 /api 中,删除了不必要的代码,如 views。然后我开始使用 gii 生成新模块,例如:v1

我在使用 api\modules 命名空间时收到此错误消息。

Module class must be properly namespaced.

您可能不知道,但在 Yii2 框架中有一个 common/config/bootstrap.php 文件,其中包含别名,例如:@frontend@common

只需在 /api 文件夹部分再添加一行即可。

Yii::setAlias('@common', dirname(__DIR__));
Yii::setAlias('@frontend', dirname(dirname(__DIR__)) . '/frontend');
Yii::setAlias('@backend', dirname(dirname(__DIR__)) . '/backend');
Yii::setAlias('@console', dirname(dirname(__DIR__)) . '/console');
Yii::setAlias('@api', dirname(dirname(__DIR__)) . '/api');