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;进入命名空间后端\资产;在后端/资产/AppAsset.php

  4. 我在 web 文件夹中创建了我的主题作为 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

我不确定我哪里出错了。有人可以帮我解决这个问题吗?

提前致谢。

4

1 回答 1

0

你可以改变你pathMapbackend/config/main.php

'pathMap' => ['@app/views' => '@app/themes/admin/views'],
于 2015-01-03T11:46:00.477 回答