Секции (section)
В layout можно указывать специальные переменные через параметр @yield('section-name')
.
<!-- resources/views/layouts/app.blade.php --> <title>@yield('title')</title>
Задавать значения можно через параметр @section('name')
.
<!-- resources/views/contacts.blade.php --> @extends('layouts.app') @section('title', 'Имя страницы')
В @section
можно указывать длинный код.
<!-- Layout --> <aside> @yield('sidebar') </aside> <!-- Шаблон страницы --> @section('sidebar') <p>Код для боковой панели</p> @endsection
Проверить, что секция существует
Проверить секцию на существование можно через параметр @hasSection
.
<!-- resources/views/layouts/app.blade.php --> @hasSection('sidebar') <aside> @yield('sidebar') </aside> @endif
Заменить или наследовать секцию
В layout можно создать контент, который можно будет заменить на другой странице.
<!-- Layout --> @section('info') <p>Контент, доступный на всех страницах</p> @show <!-- Шаблон --> @section('info') <p>Контент для текущей страницы</p> @endsection
Стоит обратить внимание, что в layout секция заканчивается на @show
, а в шаблоне страницы секция заканчивается на @endsection
.
Можно не заменить секцию, а добавить в неё свой код. Для этого в шаблоне указывается параметр @parent
.
<!-- Шаблон --> @section('info') @parent <p>Контент для текущей страницы</p> @endsection
Поддержать автора