Laravel blade模板 @yield和@section
Laravel 框架中的 Blade 模板引擎,很好用,但是在官方文档中有关 Blade 的介绍并不详细,有些东西没有写出来,而有些则是没有说清楚。比如,使用中可能会遇到这样的问题: 1. @yield 和 @section 都可以预定义可替代的区块,这两者有什么区别呢? 2. @section 可以用 @show , @stop , @overwrite 以及 @append 来结束,这三者又有什么区别呢? 本文试对这些问题做一个比较浅显但是直观的介绍。 @yield 与 @section 首先, @yield 是不可扩展的 ,如果你要定义的部分没有默认内容让子模板扩展的,那么用 @yield($name, $default) 的形式会比较方便,如果你在子模板中并没有指定这个区块的内容,它就会显示默认内容,如果定义了,就会显示你定义的内容。非此即彼。 与之相比, @section 则既可以被替代,又可以被扩展 ,这是最大的区别。比如: 代码 如下: {{-- layout.master --}} @yield('title','默认标题') @section('content') 默认的内容 @show 代码如下: {{-- home.index --}} @extends('layout.master') @section('title') @parent 新的标题 @stop