Php Yii 2:无法在扩展中找到类';yii2管理员';
扩展的Github项目: 我使用的是yii2的高级模板,因此我将Php Yii 2:无法在扩展中找到类';yii2管理员';,php,yii2,Php,Yii2,扩展的Github项目: 我使用的是yii2的高级模板,因此我将后端、前端和通用文件夹都放在了高级文件夹中 高级文件夹本身与供应商文件夹处于同一级别 我有其他的扩展,所有的都在工作 然后我通过composer安装了yii2 admin php composer.phar require mdmsoft/yii2-admin "*" 装置运转良好 到供应商文件夹中,我现在已将带有yii2 admin子文件夹的mdmsoft文件夹放入其中 这是vendor/yiisoft/extensions.p
后端
、前端
和通用
文件夹都放在了高级
文件夹中
高级文件夹本身与供应商文件夹处于同一级别
我有其他的扩展,所有的都在工作
然后我通过composer安装了yii2 admin
php composer.phar require mdmsoft/yii2-admin "*"
装置运转良好
到供应商文件夹中,我现在已将带有yii2 admin
子文件夹的mdmsoft文件夹放入其中
这是vendor/yiisoft/extensions.php的实际内容(由composer安装修改,我没有手动触摸它)
这些将adedd配置为backend/config/main.php
<?php
return [
...
'components' => [
...
'authManager' => [
'class' => 'yii\rbac\DbManager', // or use 'yii\rbac\PhpManager'
],
],
];
'modules' => [
'admin' => [
'class' => 'mdm\admin\Module',
]
],
'components' => [
'as access' => [
'class' => 'mdm\admin\components\AccessControl',
'allowActions' => [
'admin/*', // add or remove allowed actions to this list
]
],
],
(我省略了每个代码块中的无用代码)
我还启用了漂亮的url。而且它起作用了
完成错误堆栈
2014-11-06 17:05:49 [127.0.0.1][-][-][error][ReflectionException] exception 'ReflectionException' with message 'Class mdm\admin\Module does not exist' in C:\xampp\htdocs\advanced\vendor\yiisoft\yii2\di\Container.php:408
Stack trace:
#0 C:\xampp\htdocs\advanced\vendor\yiisoft\yii2\di\Container.php(408): ReflectionClass->__construct('mdm\\admin\\Modul...')
#1 C:\xampp\htdocs\advanced\vendor\yiisoft\yii2\di\Container.php(354): yii\di\Container->getDependencies('mdm\\admin\\Modul...')
#2 C:\xampp\htdocs\advanced\vendor\yiisoft\yii2\di\Container.php(147): yii\di\Container->build('mdm\\admin\\Modul...', Array, Array)
#3 C:\xampp\htdocs\advanced\vendor\yiisoft\yii2\BaseYii.php(344): yii\di\Container->get('mdm\\admin\\Modul...', Array, Array)
#4 C:\xampp\htdocs\advanced\vendor\yiisoft\yii2\base\Module.php(354): yii\BaseYii::createObject(Array, Array)
#5 C:\xampp\htdocs\advanced\vendor\yiisoft\yii2\base\Module.php(511): yii\base\Module->getModule('admin')
#6 C:\xampp\htdocs\advanced\vendor\yiisoft\yii2\base\Module.php(449): yii\base\Module->createController('admin/route')
#7 C:\xampp\htdocs\advanced\vendor\yiisoft\yii2\web\Application.php(83): yii\base\Module->runAction('admin/route', Array)
#8 C:\xampp\htdocs\advanced\vendor\yiisoft\yii2\base\Application.php(375): yii\web\Application->handleRequest(Object(yii\web\Request))
#9 C:\xampp\htdocs\advanced\backend\web\index.php(18): yii\base\Application->run()
#10 {main}
问题
如果我在/admin
打开后端,我会遇到此异常
ReflectionException类mdm\admin\Module不存在
这是我的第一个Yii2应用程序,所以我不知道问题出在哪里以及如何调试它
编辑1
我选中了C:\xampp\htdocs\vendor\mdmsoft\yii2 admin\Module.php,在它的内容中有模块
类定义
class Module extends \yii\base\Module
编辑2
我的第一个错误是,asAccess
被放入组件
数组中。但它必须在它之外,在同一水平上
现在错误已更改:
Class mdm\admin\components\AccessControl does not exist
“我将此配置添加到common/config/main.php”
注意:不要放在公共
,放在前端
或后端
。。。控制台应用程序没有用户组件,不需要访问控制
试着在后端/config/main
的“模块”前面添加这个
'vendorPath' => dirname(dirname(__DIR__)) . '/vendor',
'extensions' => require(__DIR__ . '/../../vendor/yiisoft/extensions.php'),
'components' => [
'cache' => [
'class' => 'yii\caching\FileCache',
],
'authManager' => [
'class' => 'yii\rbac\DbManager',
],
],
我不得不假设整个过程前面都有返回,所以整个代码如下所示:
return [
'vendorPath' => dirname(dirname(__DIR__)) . '/vendor',
'extensions' => require(__DIR__ . '/../../vendor/yiisoft/extensions.php'),
'components' => [
'cache' => [
'class' => 'yii\caching\FileCache',
],
'authManager' => [
'class' => 'yii\rbac\DbManager',
],
],
'modules'=>[
'admin' => [
'class' => 'mdm\admin\Module',
],
],
'as access' => [
'class' => 'mdm\admin\components\AccessControl',
'allowActions' => [
'admin/*',
],
],
];
希望这有帮助:D首先:这是错误的
'components' => [
'cache' => [
'class' => 'yii\caching\FileCache',
],
'as access' => [
'class' => 'mdm\admin\components\AccessControl',
'allowActions' => [
// 'admin/*', // add or remove allowed actions to this list
]
],
],
必须如下所示:
'components' => [
'cache' => [
'class' => 'yii\caching\FileCache',
],
],
'as access' => [
'class' => 'mdm\admin\components\AccessControl',
'allowActions' => [
// 'admin/*', // add or remove allowed actions to this list
]
],
秒:必须运行此命令
php composer.phar require mdmsoft/yii2-admin "*"
从应用程序根目录(htdocs\advanced
)中,而不是从您执行yii安装的位置(您进入了htdocs
)。只有通过这种方式才能在应用程序中安装yii2 admin
第三个:控制台没有authManager不是真的!如果您必须使用rbac,只需将默认的yii2迁移配置到console应用程序中即可。所以我的建议是:将authManager配置到控制台中,并在需要的地方将其他东西配置到前端和/或后端
第四个:您无法从后端管理前端路由,因此您需要启用此模块,即使是进入前端抱歉,没有更改。我没有启用缓存组件,但我当然不是问题所在。另外:我必须将authManager配置设置为公共配置,因为迁移(包括在extesion中)需要it@realtebo所有的相对路径都正确放置了吗?停止:第一个错误,我在组件中添加了“asAccess”,但它必须在外部,但现在错误不同了:“类mdm\admin\components\AccessControl不存在”我已经找到了正确答案的所有部分。所以我将发布它,因为_访问应该在组件数组中看到这里,我相信这个答案是不正确的。表示“authManager”应该位于“组件”内部,这是合乎逻辑的。
php composer.phar require mdmsoft/yii2-admin "*"