包含多个视图会覆盖其他包含视图的内容

Including multiple views overwrites content of other included views

我有各种模板,例如 sms.birthdaysms.account-created。它们都继承自一个基础视图 layouts.sms。在其中一个管理页面上,我想通过包含一些虚拟数据来显示这些视图的预览。但是,在包含视图时,包含的第一个视图会覆盖所有其他视图的部分。

// layouts.sms
@yield('sms.content')
// sms.birthday
@extends('layouts.sms')

@section('sms.content')
    Happy birthday
@stop
// sms.account-created
@extends('layouts.sms')

@section('sms.content')
    Account created
@stop
// admin page
@include('sms.birthday')
@include('sms.account-created')

管理页面的预期结果:

Happy birthday
Account created

管理页面上的实际结果:

Happy birthday
Happy birthday

不使用 @stop,而是使用 @overwrite 解决了我的问题。

https://github.com/laravel/framework/issues/1058#issuecomment-17194530