我在文件夹api下创建了一个模块(它本身与yii2高级应用程序中的后端和前端相同)。
文件夹结构:
API
- 共同的 ------控制器
------型号
- 配
- 模块
------ v1
----------控制器
----------型号
- 运行时
- 测试
- 网站
在api / config / main.php中:
return [
'id' => 'app-api',
'basePath' => dirname(__DIR__),
'bootstrap' => ['log'],
'modules' => [
'v1' => [
'basePath' => '@app/modules/v1',
'class' => 'api\modules\v1\Module'
]
],
我收到错误:
ReflectionException
类api \ modules \ v1 \ Module不存在
班级肯定在那里。
我已经运行了一个composer dumpautoload(没有错误)。
config / main.php中的urlManager:
'urlManager' => [
'enablePrettyUrl' => true,
'enableStrictParsing' => true,
'showScriptName' => false,
'rules' => [
'v1/site/index' => 'v1/site/index', //module/controller/action
],
]
任何帮助非常感谢,
感谢
答案 0 :(得分:7)
好的,它得到了: 在common / config / bootstrap.php中,添加:
Yii::setAlias('@api', dirname(dirname(__DIR__)) . '/api');
然后在config / main.php中使用:
'modules' => [
'v1' => [
'basePath' => '@api/modules/v1',
'class' => 'api\modules\v1\Module'
]
],
这似乎有效,谢谢你们
答案 1 :(得分:1)
谢谢,gvanto。还要检查是否在\ api \ web \ index.php中包含common / config / bootstrap.php。喜欢这里
<?php
defined('YII_DEBUG') or define('YII_DEBUG', true);
defined('YII_ENV') or define('YII_ENV', 'dev');
require(__DIR__ . '/../../vendor/autoload.php');
require(__DIR__ . '/../../vendor/yiisoft/yii2/Yii.php');
require (__DIR__ . '/../../common/config/bootstrap.php');
$config = yii\helpers\ArrayHelper::merge(
require(__DIR__ . '/../../common/config/main.php'),
require(__DIR__ . '/../../common/config/main-local.php'),
require(__DIR__ . '/../config/main.php'),
require(__DIR__ . '/../config/main-local.php')
);
$application = new yii\web\Application($config);
$application->run();
这是我的错误。也许它会帮助某人