Я новичок в yii2, но довольно давно использую Yii 1.x. Я использую расширенный шаблон Yii2 и реализую пользовательскую тему для бэкэнда. я использую https://github.com/mithun12000/adminUI тема для бэкэнда. Я настроил свою тему следующим образом:
установить тему с помощью композитора
добавлена поддержка тем в backend / config / main.php следующим образом:
'view'=>[
'theme'=>[
'pathMap'=>['@app/views'=>'@webroot/themes/admin/views'],
'baseUrl'=>'@web/themes/admin'
]
],
Изменено пространство имен app \ assets; в бэкэнд пространства имен \ assets; в бэкэнд / assets / AppAsset.php
Я создал свою тему в веб-папке как 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
Я не уверен, где я ошибся. Кто-нибудь может помочь мне с этим?
Заранее спасибо.
Вы можете изменить свой pathMap
в backend/config/main.php
'pathMap' => ['@app/views' => '@app/themes/admin/views'],
Других решений пока нет …