layout 布局一般都是指 头部 尾部 和正文区域分离,头部和尾部以文件的形式,多次调用。
thinkphp5的layout布局有三种实现方式。
第一种方式设置,需要在配置文件中设置layout_on 为true。然后layout配置文件的目录
'layout_name' => 'layout',
{include file="public/header" /}
{__CONTENT__}
{include file="public/footer" /}
先渲染layout模板,然后再加载__CONTENT__。
第二种方式是用模板标签的方式。但是需要将layout_on 设置为false,为了避免出现多次循环。
{layout name="layout" /}
还可以替换指定的字符串
{layout name="Layout/newlayout" replace="[__REPLACE__]" /}
第三种方式,是使用控制器,也不需要设置layout_on 。可以更灵活的在程序中控制模板输出的布局功能,尤其适用于局部需要布局或者关闭布局的情况
namespace app\index\controller;
use think\Controller;
class User extends Controller
{
public function add()
{
$this->view->engine->layout(true);
return $this->fetch('add');
}
}