在我的Yii应用程序中,我有一个名为admin的模块,因此模块类是AdminModule,它扩展了CWebModule类,位于AdminModule.php文件中.根据文档,CWebModule具有layout
在所有模块控制器之间共享的属性,以防控制器本身没有定义任何布局.
我的控制器没有定义任何布局,在AdminModule.php我把它:
$this->layout='webroot.themes.bootstrap.views.layouts.column2';
$this->layoutPath = Yii::getPathOfAlias('webroot.themes.bootstrap.views.layouts');
Run Code Online (Sandbox Code Playgroud)
但是,管理模块中的控制器仍在使用其他布局,我认为它是在components目录中的Controller.php中定义的.这是为什么?如何为特定模块设置共享布局?
解决方案是稍微更改我的代码,如下所示:
$this->layoutPath = Yii::getPathOfAlias('webroot.themes.bootstrap.views.layouts');
$this->layout = 'column2';
Run Code Online (Sandbox Code Playgroud)
与指定的路径一样,我不需要为布局指定整个路径别名.我在AdminModule.php的init()函数中有这些行,它工作正常.
归档时间: |
|
查看次数: |
5230 次 |
最近记录: |