case 1:
{{-- layout/master.blade.php --}}
@yield('title', '默认标题')
默认标题
case 2:
{{-- layout/master.blade.php --}}
@yield('title', '默认标题')
{{-- test.blade.php --}}
@extends('layout.master')
@section('title')
新的标题
@stop
新的标题
case 3:
{{-- layout/master.blade.php --}}
@yield('title', '默认标题')
{{-- test.blade.php --}}
@extends('layout.master')
@section('title')
@parent
新的标题
@stop
新的标题
case 4:
{{-- layout/master.blade.php --}}
@section('title')
默认标题
@show
{{-- test.blade.php --}}
@extends('layout.master')
@section('title')
@parent
新的标题
@stop
默认标题 新的标题
结论
- @yield 可以设置默认值,没有 @section 标签时会显示默认值。
- 有 @section 标签时会覆盖 @yield 的内容,且不支持用 @parent 重载原内容。
- @section 标签既可以覆盖 @section 的内容,也可以重载 @section 的内容。
- 当子模板不需要引用原父模板的内容时使用 @yield 即可。