Ошибка пространства имен при использовании gridview с использованием пользовательской темы в yii2

Я новичок в yii2, но довольно давно использую Yii 1.x. Я использую расширенный шаблон Yii2 и реализую пользовательскую тему для бэкэнда. я использую https://github.com/mithun12000/adminUI тема для бэкэнда. Я настроил свою тему следующим образом:

  1. установить тему с помощью композитора

  2. добавлена ​​поддержка тем в backend / config / main.php следующим образом:

    'view'=>[
    'theme'=>[
    'pathMap'=>['@app/views'=>'@webroot/themes/admin/views'],
    'baseUrl'=>'@web/themes/admin'
    ]
    ],
    
  3. Изменено пространство имен app \ assets; в бэкэнд пространства имен \ assets; в бэкэнд / assets / AppAsset.php

  4. Я создал свою тему в веб-папке как backend / web / themes / admin и разместил там свои представления.

  5. В моем контроллере, чтобы использовать только что созданную тему, я поместил следующий код:

    $this->getView()->theme = Yii::createObject([
    'class' => '\yii\base\Theme',
    'pathMap' => ['@backend/views' => '@webroot/themes/admin/views'],
    'baseUrl' => '@web/themes/admin',
    ]);
    
  6. Экран входа в систему работает нормально. Но если у меня есть какой-либо виджет, предположим, 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

Я не уверен, где я ошибся. Кто-нибудь может помочь мне с этим?

Заранее спасибо.

0

Решение

Вы можете изменить свой pathMap в backend/config/main.php

'pathMap' => ['@app/views' => '@app/themes/admin/views'],
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]