【问题标题】:Namespace error when using gridview using custom theme in yii2在 yii2 中使用自定义主题使用 gridview 时出现命名空间错误
【发布时间】:2015-02-28 17:56:20
【问题描述】:

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

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

提前致谢。

【问题讨论】:

    标签: php gridview namespaces yii2 yii2-advanced-app


    【解决方案1】:

    您可以将pathMap 更改为backend/config/main.php

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

    【讨论】:

    • 试过但没用。我仍然得到同样的错误
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-23
    相关资源
    最近更新 更多