我是 yii2 的新手,但是我使用 Yii 1.x 已经很长时间了。我正在使用 Yii2 的高级模板并为后端实现自定义主题。我正在为后端使用https://github.com/mithun12000/adminUI主题。我的主题设置如下:
使用 composer 安装主题
在 backend/config/main.php 中添加了主题支持,如下所示:
'view'=>[ 'theme'=>[ 'pathMap'=>['@app/views'=>'@webroot/themes/admin/views'], 'baseUrl'=>'@web/themes/admin' ] ],
更改了命名空间 app\assets;进入命名空间后端\资产;在后端/资产/AppAsset.php
我在 web 文件夹中创建了我的主题作为 backend/web/themes/admin 并将我的视图放在那里。
在我的控制器中,为了使用我刚刚创建的主题,我输入了以下代码:
$this->getView()->theme = Yii::createObject([ 'class' => '\yii\base\Theme', 'pathMap' => ['@backend/views' => '@webroot/themes/admin/views'], 'baseUrl' => '@web/themes/admin', ]);
登录屏幕工作正常。但是如果我有任何小部件,假设 Gridview,那么我会得到命名空间错误。我得到的错误是:
Unknown Class – yii\base\UnknownClassException Unable to find 'app\assets\AppAsset' in file: D:\projects\bmjobs\site\backend/assets/AppAsset.php. Namespace missing?
如果我将 AppAsset.php 中的命名空间更改为 app\assets,则会收到以下错误:
PHP Fatal Error – yii\base\ErrorException
Call to a member function checkAccess() on a non-object
我不确定我哪里出错了。有人可以帮我解决这个问题吗?
提前致谢。