Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/visual-studio-2010/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Layout Yii(嵌套)子模块的布局_Layout_Module_Yii - Fatal编程技术网

Layout Yii(嵌套)子模块的布局

Layout Yii(嵌套)子模块的布局,layout,module,yii,Layout,Module,Yii,我已经在Yii中设置了一个嵌套的模块结构,由于某种原因,子模块似乎根本没有使用任何布局 这是我的继承人之路 app protected modules parent views layouts column1.php column2.php

我已经在Yii中设置了一个嵌套的模块结构,由于某种原因,子模块似乎根本没有使用任何布局

这是我的继承人之路

app
    protected
        modules
            parent
                views
                    layouts
                        column1.php
                        column2.php
                        main.php
                modules
                    child
我在配置文件中添加了如下模块

'modules'=>array(
    'parent'=>array(
        'modules'=>array(
            'child',
        ),
    ),
),
这两个模块都起作用,但在子模块中,我得到的只是解释默认/索引控制器的消息,可以通过以下路径进行自定义。没有显示布局内容

根据文档,我希望子模块从父模块继承布局

我确实使用gii生成了子模块(它不会创建子模块),因此我创建了一个典型的模块,在父模块中添加了一个模块文件夹,并将结果作为子模块复制到父模块中


有什么好主意吗?

原来问题在于Yii中的视图分辨率方案。我的父模块将默认布局设置为“column1”,该布局由我的子模块继承。在“column1”布局中,“main”布局使用以下代码呈现

$this->beginContent('/layouts/main');
在Yii的视图分辨率方案中,这将映射到当前模块的layouts文件夹。对于“我的父模块”中的视图,这将映射到“父视图”文件夹中的主布局,并且工作正常

/protected/modules/parent/views/layouts/main.php

对于我的子模块中的视图,这将映射到子视图文件夹中不存在的主布局,并且解析失败

/protected/modules/parent/modules/child/views/layouts/main.php

Yii论坛上提供的一个解决方法是修改父模块中的“column1”和“column2”布局,以使用半固定路径

$this->beginContent('//../modules/parent/views/layouts/main')