0

私は yii2 は初めてですが、かなり長い間 Yii 1.x を使用しています。Yii2 の高度なテンプレートを使用し、バックエンドにカスタム テーマを実装しています。バックエンドにhttps://github.com/mithun12000/adminUIテーマを使用しています。次のようにテーマを設定しました。

  1. composer を使用してテーマをインストールする

  2. 次のように、backend/config/main.php にテーマのサポートを追加しました。

    'view'=>[
        'theme'=>[
            'pathMap'=>['@app/views'=>'@webroot/themes/admin/views'],
            'baseUrl'=>'@web/themes/admin'
        ]
    ],
    
  3. 名前空間 app\assets を変更しました。名前空間 backend\assets に。backend/assets/AppAsset.php 内

  4. backend/web/themes/admin として web フォルダーにテーマを作成し、そこにビューを配置しました。

  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

どこで間違ったのかわかりません。誰でもこれで私を助けてもらえますか?

前もって感謝します。

4

1 に答える 1