问一个module的layout的问题

用命令行新建了一个module叫做admin,自动生成的view文件夹下面有一个layout文件夹,但是在里面放如自己的layout文件main.php不管用,是需要在config里面的module中设置什么吗?还是不支持自动配置,只能在admin的controller中进行设置?

另外,如果放入到theme下面,会自动调用对应的theme的主要的layout下的main.php,也不会调用theme下面admin这个module下的layout。

你需要配置module本身的layout(layout是CWebModule的一个属性)。缺省值是null,意思是用父亲(应用或父module)的layout。

Quote

你需要配置module本身的layout(layout是CWebModule的一个属性)。缺省值是null,意思是用父亲(应用或父module)的layout。

我需要指定themes/classic/views/moduleId/layouts/zh_cn/目录下的一个layout.php作为一个module的layout,在配置文件中应该这么写呢?

在你module class的init里设置$this->layout='layout'。

Quote

在你module class的init里设置$this->layout='layout'。

经过测试:

1.在module的init,或者在config里面设置layout,都会指向modules/moduleId/views/layouts目录下面的layout文件,而不会指向theme下面对应的module的views下的layout文件;

2.同样的view文件却可以自动调用到theme下面对应的文件。

多谢,这是一个bug,已经解决了。