Подключить файл в шаблон (Компоненты)

Подключить файл

В Laravel можно создавать компоненты, которые можно подключать в шаблон через команду @component(). Код ниже подключает компонент «alert.blade.php».

@component('alert')
    <p>Текст ошибки</p>
@endcomponent

Пример компонента «alert.blade.php»:

<!-- resources/views/alert.blade.php -->

<div class="alert alert-danger">
    {{ $slot }}
</div>

Вместо переменной {{ $slot }} будет выводиться текст, указанный в команде @component().

Также можно подключить файл через команду @include(). Все переменные на текущей странице также станут доступны в подключаемом файле.

@include('section')

Подключить файл с параметрами

Можно подключить файл с несколькими параметрами.

@component('alert', ['title' => 'Название ошибки'])
    <p>Текст ошибки</p>
@endcomponent

Пример файла с параметрами:

<!-- resources/views/alert.blade.php -->

<div class="alert alert-danger">

    <div class="alert-title">{{ $title }}</div>

    {{ $slot }}

</div>

Сокращённый вызов компонента

Начиная с версии Laravel 5.6, можно создавать синонимы для компонентов, которые позволяют сократить код вызова компонентов. Например, вместо @component('alert') можно использовать @alert().

# app/Providers/AppServiceProvider.php
use Illuminate\Support\Facades\Blade;

class AppServiceProvider extends ServiceProvider
{
    // …

    public function boot()
    {
        // Создание компонента «alert»
        Blade::component('components.alert', 'alert');
    }
}

Теперь можно использовать команду @alert() в шаблонах сайта.

@alert(['title' => 'Название ошибки'])
    <p>Текст ошибки</p>
@endalert