【发布时间】:2013-09-19 16:44:49
【问题描述】:
我正在开发一个用 PHP 编写并使用 Yii 框架的现有项目。
我想创建一个全新的布局。在视图/布局下,我创建了一个名为 bootstrap.php 的文件,并在其中填充了我想用于所有页面的标准模板。我在布局之间放置了我想要放置内容的位置。
在控制器中,在渲染视图之前,我调用:
$this->layout = "//layouts/bootstrap";
我希望这会强制布局使用我的新布局,但它总是会恢复到 main.php 布局。
如果我也将其更改为不存在的布局 $this->layout = "//layouts/bootstrapxx";
它将以空白布局呈现页面(只是将内容直接输出到浏览器)。这表明 Yii 检测到了我的新布局的位置,但无论如何它仍在渲染旧布局。
如果有人能帮我弄清楚如何将布局设置为新布局,将不胜感激。
谢谢
【问题讨论】:
-
只参考
bootstrap,而不是//layouts/bootstrap -
谢谢,就在我发布问题之后,我就这样做了,并且成功了。你知道为什么它会把我推到主布局做 //layouts/bootstrap 而不是只给我空白或错误?
-
您可以在CControler::render() 中看到逻辑(点击“显示”链接查看源代码)。如果它无法获取布局文件,它将继续不应用布局。 . .