@section、@yield、@parent、@stop、@overwrite、@append
1. @section 与 @yield
@section 指令定义了视图的一部分内容,而 @yield 指令是用来显示指定部分的内容。

@section 与 @yield 的差异:
@yield 可以设置默认值,没有 @section 标签时会显示默认值。有 @section 标签时会覆盖 @yield 的内容,且不支持用 @parent 重载原内容。@section 标签既可以覆盖 @section 的内容,也可以重载 @section 的内容。当子模板不须要引用原父模板的内容时利用 @yield 即可。2. 其他指令
@section: 指令定义视图的一部分内容@show:是 @section 指令下面的结束符。还有其他结束符@stop、@endsection、@overwrite 以及 @append①关于 @show 与 其他结束符的利用解释:
一样平常都是在父类模版中利用 @show 作为结束符,在子类模版中利用其他结束符。
②@stop 和 @endsection 结束关键字
这两个代表的都一样, @endsection属于老版本,新版本都用@stop, 以是建议往后都是用@stop, 如果考虑构造对称利用 @endsection 也可以。
@show: 指的是实行到此处时将该 section 中的内容输出到页面@stop 则只是进行内容解析,并且不再处理当前模板中后续对该 section 的处理, 并不输出内容到页面但是如果前面在该 @section('xxx') ... @append 中调用 @parent, 然后在该当前 @section 模版中利用 @stop 结束符,则会更换 @parent 默认的原内容
实例1:
{{-- master.blade.php --}}@section('content') 默认原内容@show {{-- child.blade.php --}}@section('content') @parent <p>我是模版继续 - 01</p>@endsection 输出: 默认原内容 我是模版继续 - 01
实例2:
{{-- master.blade.php --}}@section('content') 默认原内容@show {{-- child.blade.php --}}@section('content') @parent <p>我是模版继续 - 01</p>@append@section('content') <p>我是模版继续 - 02</p>@append 输出: 默认原内容 我是模版继续 - 01 我是模版继续 - 02
实例3:
{{-- master.blade.php --}}@section('content') 默认原内容@show {{-- child.blade.php --}}@section('content') @parent <p>我是模版继续 - 01</p>@append@section('content') @parent <p>我是模版继续 - 02</p>@stop 输出: 我是模版继续 - 02 我是模版继续 - 01
把稳:@stop 的模版已经更换 @parent 继续的默认原内容
扩展:如果把 master.blade.php 中的@section 换成 @yield("content", '默认原内容') 会是什么结果呢?实在 @yield 和 @parent 和 @stop 的利用办法都没有变.我也展示下吧, 不一样的结果只是在 @yield 定义的内容不支持用 @parent 重载原内容的部分
实例1 - 扩展:
{{-- master.blade.php --}}@yield('content', '默认原内容') {{-- child.blade.php --}}@section('content') @parent <p>我是模版继续 - 01</p>@endsection 输出: 我是模版继续 - 01
实例2:
{{-- master.blade.php --}}@yield('content', '默认原内容') {{-- child.blade.php --}}@section('content') @parent <p>我是模版继续 - 01</p>@append@section('content') <p>我是模版继续 - 02</p>@append 输出: 我是模版继续 - 01 我是模版继续 - 02
实例3:
{{-- master.blade.php --}}@section('content') 默认原内容@show {{-- child.blade.php --}}@section('content') @parent <p>我是模版继续 - 01</p>@append@section('content') @parent <p>我是模版继续 - 02</p>@stop 输出: 我是模版继续 - 02 我是模版继续 - 01
把稳:@stop 的模版已经更换 @parent 继续的默认原内容
@overwrite:覆盖之前的所有定义,以这次的为准 @append:再次添加模板 @yield:用来显示指定部分内容。如果你要定义的部分没有默认内容让子模板扩展的,那么用 @yield(default) 的形式会比较方便 @parent:保留父模板内容。但是 @yield 模板继续后继续模板将不会保留父模板内容
3. 其他
注释部分也很大略,便是将 {{– …–}} 更换成 <?php / … / ?php>compileRawEchos -> 输出未经转义的内容 ({!! … !!})compileEscapedEchos -> 输出转义之后的内容 ({{{ … }}})compileRegularEchos -> 正常输出 ({{ … }})领取办法:点赞关注
领取办法:点赞关注小编后私信【资料】获取资料领取办法!