Стеки должны использоваться в макетах. Существует не так много причин, если таковые имеются, чтобы поместить стек в один и тот же шаблон блейда.
В примере в документации стек определяется в макете <head>
. Шаблон, который расширяет этот макет, - это то место, куда вы должны вставить или добавить код к этому стеку. (Хотя документы могут быть более ясными об этом)
Секции блэйд-рендеринга визуализируются, а затем помещаются в расширенный макет в соответствующих местах, что позволяет определить, куда загружается контент.
Вы не можете определить раздел с yield, а затем определить содержимое внутри этого раздела. Как только макет достигнет @yield или @stack, он будет отображать то, что было определено в этом разделе.
Другими словами, это работает, потому что содержимое раздела отображается перед выходом:
@section('test')
<h1>Hello World</h1>
@endsection
@yield('test')
Но это не так:
@yield('test')
@section('test')
<h1>Hello World</h1>
@endsection
Тот же логический порядок применяется к стекам.