Я новичок в 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; в пространство имен backend\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
Я не уверен, где я ошибся. Кто-нибудь может помочь мне с этим?
Заранее спасибо.