yii2 中基于主题的模块视图

Posted

技术标签:

【中文标题】yii2 中基于主题的模块视图【英文标题】:Theme based module's views in yii2 【发布时间】:2015-03-24 12:07:24 【问题描述】:

我正在使用 Yii2 高级模板。我在 /frontend/modules/ 目录中创建了用户模块。如果没有主题集成,则从 /modules/user/views/ 目录调用视图。

目前,我在 /frontend 目录中创建了三个不同的主题。所以我想从 User Module 的主题目录访问视图。怎么可能?

可以设置模块布局

$this->layoutPath = \Yii::getAlias('/themes/classic/views/layouts/');

$this->layout = 'userLayout';

但是如何从模块的主题目录访问视图?

请提出可能的解决方案..

【问题讨论】:

你试过设置layoutPath和layout吗?它有效还是您遇到了一些错误?请说明。 它对我有用,但视图是从模块/视图目录呈现的。我想从 /frontend/theme/classic 中的主题目录渲染视图。 尝试使用以下方法设置路径:setLayoutPath() 和 setViewPath() 有关更多详细信息,请查看此链接:yiiframework.com/doc-2.0/yii-base-module.html 试试这个答案***.com/questions/25622565/yii2-theme-integration/… 【参考方案1】:

我找到了问题的解决方案。我已经实现了以下方式。

在 init() 方法之后的 Module.php 中添加了布局路径。

public function init()

    parent::init();
    $this->layoutPath = \Yii::getAlias('@app/themes/classic/views/layouts/');
    $this->layout = 'userLayout';

在 main.php 配置文件中添加了带有模块视图的主题配置

'view' => [
        'theme' => [
          'pathMap' => [
              '@app/views' =>'@app/themes/classic/views/',
              '@app/modules'=>'@app/themes/classic/modules',
              '@app/widgets'=>'@app/themes/classic/widgets'

          ],
          'baseUrl'=>"/themes/classic",
        ],
    ],

【讨论】:

以上是关于yii2 中基于主题的模块视图的主要内容,如果未能解决你的问题,请参考以下文章

Yii2创建多界面主题(Theme)

如何用自己的主题覆盖yii2.0中的当前主题

如何制作基于模块化 NSViewController 的公开视图,其中所有公开的视图都包含在它们自己的 NIB 中?

讲堂 | Yii2之rbac(基于角色的权限管理)-- 思想与配置

Java+JSP基于ssm主题酒店预订系统

Yii2 ListView 自定义数据属性基于当前 DP 模型