Ошибка пространства имен при использовании 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; в пространство имен backend\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

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

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


person SushilB    schedule 02.01.2015    source источник


Ответы (1)


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

'pathMap' => ['@app/views' => '@app/themes/admin/views'],
person GAMITG    schedule 03.01.2015
comment
Пробовал, но не работал. Я все еще получаю ту же ошибку - person SushilB; 04.01.2015