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 中基于主题的模块视图的主要内容,如果未能解决你的问题,请参考以下文章
如何制作基于模块化 NSViewController 的公开视图,其中所有公开的视图都包含在它们自己的 NIB 中?