方法一:
yii模块默认使用系统当前的主题布局文件,如果在主配置文件中配置了主题比如:

'theme'=>'mythm',
那么yii的模块就使用 protected/themes/mythm/views/layouts 下的布局文件;
如果未配置主题,那么 yii的模块就使用  protected/views/layouts 下的布局文件, 总之默认不是使用自身目录 protected/modules/my_module/views/layouts 下的布局文件。
 
于是想到去配置模块$layout属性
'my_module' => array(
'layout'=>'main', //这个属性的默认值是 //layout/main
), 
但没有起作用,原因在于模块下的controller的$layout值仍然是 //layouts/main
为了一劳永逸解决这个问题,在protected/modules/my_module/controllers里创建 DadController继承Controller
class DadController extends Controller {
public $layout = 'main';
}
所有的Controller都去继承DadController即可。 别忘了去主配置文件配置DadController的引入目录:
'import'=>array(
'application.models.*',
'application.components.*',
'application.modules.my_module.controllers.*',
),

方法二:

访问index.php?r=admin/default/index时,默认使用了protected/views/layout /main.php,如果想使用模块自己的layout文件(protected/modules/admin/views/layout /main.php),需要修改protected/modules/admin/controllers /DefaultController.php,在这个文件内添加下面代码:

public  $layout = 'application.modules.admin.views.layouts.main';

或者

public  $layout = '/layouts/column2';

方法三:
在模块入口文件 beforeControllerAction中添加处理代码,这个方法发生于动作执行前:(例如AdminModule.php)
    public function beforeControllerAction($controller, $action)
    {
         $controller->layout = 'application.modules.admin.views.layouts.book';
        if(parent::beforeControllerAction($controller, $action))
        {
            // this method is called before any module controller action is performed
            // you may place customized code here
            return true;
        }
        else
            return false;
    }

yii 修改模块使用的布局文件的更多相关文章

  1. 【转】Android-Input input&按键布局文件

    https://source.android.com/devices/input 输入 Android 输入子系统名义上是由遍历系统多个层的事件管道组成. 输入管道 在最低层,物理输入设备会生成描述状 ...

  2. magento的布局文件之谜

    magento的布局文件layout.xml文件详解 解析顺序 布局xml文件一般位于app/design/{area}/{package}/{theme}/layout/目录下.Layout文件一般 ...

  3. Android Studio分类整理res/Layout中的布局文件(创建子目录)

    res/layout中的布局文件太杂,没有层次感,受不了的我治好想办法解决这个问题. 前几天看博客说可以使用插件分组,可惜我没找到.知道看到另一篇博客时,才知道这个方法不能用了. 不能用插件,那就手动 ...

  4. Android 开发之旅:深入分析布局文件&又是“Hello World!”

    http://www.cnblogs.com/skynet/archive/2010/05/20/1740277.html 引言 上篇可以说是一个分水岭,它标志着我们从Android应用程序理论进入实 ...

  5. yii2 中布局文件的 设置方法

    网页主题应用的属性: [yii\base\Application::layout|layout 该属性指定渲染 视图 默认使用的布局名字,默认值为 'main' 对应布局路径下的 main.php 文 ...

  6. android 布局文件中控件ID、name标签属性的命名包含“@”、“.”、“+”等等符号的含义

    1. 在项目的根目录有个配置文件“AndroidManifest.xml”,是用来设置Activity的属性的如 <?xml version="1.0" encoding=& ...

  7. android横屏布局文件设置

    一.AndroidManifest.xml配置 1.在AndroidManifest.xml的activity(需要禁止转向的activity)配置中加入   android:screenOrient ...

  8. XML布局文件于Java代码使用问题

    2013-9-21 问题一.不同的XML文件中相同类型的控件id相同,那么将这些不同的布局xml组合在一个大的布局中,如何解决相同id问题 ? 解决办法: 不同的布局文件XML要组合成一个新的大布局, ...

  9. 设置Android Studio工程布局文件的默认布局

    每次创建新的工程后,布局文件的的布局总是ConstraintLayout,如何更改? 进入Android Studio安装目录,用文本编辑器打开文件plugins\android\lib\templa ...

随机推荐

  1. 3.修改更新源sources.list,提高软件下载安装速度(2017.04.05)

    2017年4月5日再次更新源 1.切换到root用户(如果已经是root用户就直接看第二步) dnt@HackerKali:~$ su 密码: 2.用文本编辑器打开sources.list,手动添加下 ...

  2. Android中获取正在运行的服务-------ActivityManager.RunningServiceInfo的使用

    关于PackageManager和ActivityManager的使用 ,自己也写了一些DEMO 了,基本上写的线路参考了Settings模块下的 应用程序,大家如果真正的有所兴趣,建议大家看看源码, ...

  3. MATLAB基础操作笔记

    A( i , : ) 表示 A矩阵的第 i 行所有元素 A( : , j ) 表示 A矩阵的第 j 列所有元素 A( : , : ) 表示 A矩阵的 所有元素 定义函数时,函数中有嵌套函数需要在结束时 ...

  4. windows server 2016安装docker

    最近微软发布了windows server 2016,并原生支持docker,本文通过一系列的步骤,来学习怎么在windows server 2016安装docker. 1.下载 windows se ...

  5. Linux下超级命令htop的学习使用

    top作为日常管理工作中最常用也是最重要的Linux系统监控工具之一,可以动态观察系统进程状况.但其缺点就是只支持键盘操作,显示也单调.作为刚才Windows转到Linux的我来说,现在有了一个更好的 ...

  6. 前端知识概述----公司内部的一次分享 分类: JavaScript HTML+CSS 2015-04-16 21:24 2593人阅读 评论(2) 收藏

    因为公司内部一个纯后端团队要做一些适合自己团队的web页面,所以就有了这次分享.知识都是很基础,有的知识也只是做了解简单介绍.主要是想让大家对前端有一个基本的了解.现在做一个总结.欢迎大家拍砖. 知识 ...

  7. DotNetOpenAuth 服务端搭建

    新建项目: 安装DotNetOpenAuth: 新增OAuthController: 代码如下: public class OAuthController : Controller { private ...

  8. C#读取excel文件的内容(使用DataSet)

    C#读取Excel文件的内容,通过OLEDB来连接,关键是连接的路径,如:string strConn = "Provider=Microsoft.ACE.OLEDB.12.0;Data S ...

  9. 直接用php.exe命令还执行php程序跟直接在网页上访问php程序的区别

    1.直接使用php.exe命令执行php程序的格式: php test.php 2.因为没有经过apache或iis这种服务器,所以一些基于服务器的变量是不能使用的, 如$_SERVER,$_ENV等 ...

  10. Node.js最新Web技术栈(2016年4月)

    Node.js是比较简单的,只有你有前端js基础,那就按照我的办法来吧!一周足矣,虽然这版上了es语法,但依然是可以简单写,也可以难写,参见<全栈工程师之路-Node.js>,里面讲了No ...