在 config/main.php 中找不到 Yii2 模块(不在/vendor 文件夹下)类 [英] Yii2 module (not under /vendor folder) class not found in config/main.php

查看:27
本文介绍了在 config/main.php 中找不到 Yii2 模块(不在/vendor 文件夹下)类的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在文件夹 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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆