Yii2 如何将布局文件拆分为单独的页眉和页脚


Yii2 How to split layout file to separate header and footer?

我是YII2新手,所以这可能是非常基本的问题。

我已经设置了初始应用程序。我为我的YII2应用程序设置了主题/themes/standard

现在,有一个默认的布局文件themes/standard/layouts/main.php - 它有页眉和页脚的html代码

我想将标题代码分成themes/standard/layouts/header.php,将页脚分成另一个文件

我在main.php中尝试了类似以下代码的内容

<?php $this->render("header"); ?>

也试过这个

<?php $this->render("//layouts/header"); ?>

但它不会呈现内容。我不想绝对路径,因为我有主题你们能帮忙吗?

为了

Nested Layouts,可以使用下面这样的beginContent()endContent()(例如在你的main.php布局中(:

<?php $this->beginContent('@app/views/layouts/header.php'); ?>
    <!-- You may need to put some content here -->
<?php $this->endContent(); ?>

beginend 之间的一切都将在 header.php$content被替换。


截至Yii2的官方例子:

有时您可能希望将一个布局嵌套在另一个布局中。例如,在网站的不同部分中,您希望使用不同的布局,而所有这些布局共享生成整体HTML5页面结构的相同基本布局。可以通过在子布局中调用beginContent()endContent()来实现此目标,如下所示:

<?php $this->beginContent('@app/views/layouts/base.php'); ?>
...child layout content here...
<?php $this->endContent(); ?>

如上所示,子布局内容应包含在 beginContent()endContent() 中。传递给beginContent()的参数指定父布局是什么。它可以是布局文件或别名。 使用上述方法,您可以在多个级别中嵌套布局。

http://www.yiiframework.com/doc-2.0/guide-structure-views.html#nested-layouts