在 config/main.php 中找不到 Yii2 模块(不在/vendor 文件夹下)类 [英] Yii2 module (not under /vendor folder) class not found in config/main.php
问题描述
我在文件夹 api 下创建了一个模块(它本身与 yii2 高级应用程序中的后端和前端处于同一级别).
I've created a module under folder api (which itself is same level as backend & frontend in yii2 advanced app).
文件夹结构:
api
-- 常见
------ 控制器
------ 型号
-- 配置
-- 模块
------ v1
---------- 控制器
---------- 模型
-- 运行时
-- 测试
-- 网页
api
-- common
------ controllers
------ models
-- config
-- modules
------ v1
---------- controllers
---------- models
-- runtime
-- tests
-- web
在 api/config/main.php 中:
In api/config/main.php:
return [
'id' => 'app-api',
'basePath' => dirname(__DIR__),
'bootstrap' => ['log'],
'modules' => [
'v1' => [
'basePath' => '@app/modules/v1',
'class' => 'api\modules\v1\Module'
]
],
出现错误:
反射异常
类 api\modules\v1\Module 不存在
Class api\modules\v1\Module does not exist
课程肯定在那里.
我运行了 Composer dumpautoload(没有错误).
I've run a composer dumpautoload (no errors).
config/main.php 中的 urlManager:
urlManager in config/main.php:
'urlManager' => [
'enablePrettyUrl' => true,
'enableStrictParsing' => true,
'showScriptName' => false,
'rules' => [
'v1/site/index' => 'v1/site/index', //module/controller/action
],
]
非常感谢任何帮助,
谢谢
推荐答案
好的明白了:在 common/config/bootstrap.php 中,添加:
OK got it: in common/config/bootstrap.php, add:
Yii::setAlias('@api', dirname(dirname(__DIR__)) . '/api');
然后在 config/main.php 中使用:
Then in config/main.php use:
'modules' => [
'v1' => [
'basePath' => '@api/modules/v1',
'class' => 'api\modules\v1\Module'
]
],
这似乎有效,谢谢大家
这篇关于在 config/main.php 中找不到 Yii2 模块(不在/vendor 文件夹下)类的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!