私は yii2 は初めてですが、かなり長い間 Yii 1.x を使用しています。Yii2 の高度なテンプレートを使用し、バックエンドにカスタム テーマを実装しています。バックエンドにhttps://github.com/mithun12000/adminUIテーマを使用しています。次のようにテーマを設定しました。
composer を使用してテーマをインストールする
次のように、backend/config/main.php にテーマのサポートを追加しました。
'view'=>[ 'theme'=>[ 'pathMap'=>['@app/views'=>'@webroot/themes/admin/views'], 'baseUrl'=>'@web/themes/admin' ] ],
名前空間 app\assets を変更しました。名前空間 backend\assets に。backend/assets/AppAsset.php 内
backend/web/themes/admin として 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
どこで間違ったのかわかりません。誰でもこれで私を助けてもらえますか?
前もって感謝します。