我是 yii2 的新手,但我使用 Yii 1.x 已经有很长一段时间了。我正在使用 Yii2 的高级模板并为后端实现自定义主题。我正在为后端使用 https://github.com/mithun12000/adminUI 主题。我设置了我的主题如下:
-
使用作曲家安装主题
-
在后端/配置/主中添加了主题支持.php如下所示:
'view'=>[ 'theme'=>[ 'pathMap'=>['@app/views'=>'@webroot/themes/admin/views'], 'baseUrl'=>'@web/themes/admin' ] ],
-
将命名空间 app''assets; 更改为命名空间后端''assets; 在后端/assets/AppAsset中.php
-
我在 web 文件夹中创建了我的主题作为后端/网络/主题/管理员,并将我的观点放在那里。
-
在我的控制器中,为了使用我刚刚创建的主题,我输入了以下代码:
$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
我不确定我哪里出错了。任何人都可以帮我解决这个问题吗?
提前谢谢。
您可以在backend/config/main.php
中更改pathMap
'pathMap' => ['@app/views' => '@app/themes/admin/views'],