Встраиваемые компоненты Blade

#laravel #templates #laravel-blade

#laravel #шаблоны #laravel-blade

Вопрос:

В некоторых приложениях у меня есть очень маленькие блейд-шаблоны, которые я использую только в одном шаблоне.

К сожалению, мне все еще нужно создать отдельный файл, такой как:

Компонент jumbotron :

 <div class="jumbotron">
  <h1 class="display-4">{{ $title }}</h1>
  {{ $slot }}
</div>    
  

Затем в моем основном компоненте я использую:

 @component('jumbotron', ['title' => 'Foo'])
Hello World!
@endcomponent
  

Я хотел бы найти способ встроить мой компонент в мой шаблон, например:

 @template('jumbotron')
<div class="jumbotron">
  <h1 class="display-4">{{ $title }}</h1>
  {{ $slot }}
</div>    
@endtemplate

@component('jumbotron', ['title' => 'Foo'])
Hello World!
@endcomponent
  

Я это как-то возможно?

Комментарии:

1. Вы используете компонент несколько раз в этом одном шаблоне или только один раз?

2. Да, несколько раз

3. Я не думаю, что это возможно из коробки. Вам пришлось бы вручную добавить @template директиву, расширив blade, чтобы заставить это работать, но такой подход выглядит немного излишним по сравнению с созданием файла :-/