Полный цикл в digital

Наследование шаблонов

Два основных преимущества использования Blade наследование шаблонов и наследование секций. Поскольку многие веб-приложения используют один общий макет для разных страниц, удобно определить этот макет как один layout-шаблон.

Основной шаблон который вызывается из контроллера:

resources/views/index.blade.php@extends('layouts.site')

@section('content')
    <h1>Все посты блога</h1>
@endsection

Дочерний шаблон который вызывается из вида выше, командой @extends:

resources/views/layouts/site.blade.php<!doctype html>
<html lang="ru">
<head>
    <meta charset="UTF-8">
    <meta name="viewport"
    content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Все посты блога</title>
</head>
<body>
<div class="container">
    @yield('content')
</div>
</body>
</html>

Вместо @yield('content') будет подставлено и отрисовано содержимое секции @section('content'). Директива @yield может принимать дефолтное значение в качестве второго аргумента. Это значение отрисовывается, если секция которая должна располагаться на этом месте, не определена:

@yield('content', 'Контент страницы')

Тоже самое с директивой @section:

@section('content', 'Контент страницы')

Рассмотрим еще один пример, где используем директиву @parent.

Основной шаблон который вызывается из контроллера:

<html>
    <head>
        <title>
            @yield('title', 'Заголовок по умолчанию')
        </title>
    </head>
    <body>
        <div id="content">
            @section('content')
                <p>Это контент страницы по умолчанию.</p>
            @show
        </div>
    </body>
</html>

И создадим два варианта дочернего шаблона:

@extends('layouts.site')
@section('title', 'Новый заголовок страницы')
@section('content')
    <p>Это контент замещает контент по умолчанию.</p>
@endsection
@extends('layouts.site')
@section('title', 'Новый заголовок страницы')
@section('content')
    @parent
    <p>Это контент дополняет контент по умолчанию.</p>
@endsection

Обратите внимание, в родительском шаблоне вместо мы используем @section и @show — что означает окончание секции и вывод содержимого. Другими словами, директивы @yeld и @show отвечают за вывод содержимого секции, а директивы @section и @endsection только задают содержимое, но ничего не выводят.

Заполните форму уже сегодня!
Для начала сотрудничества необходимо заполнить заявку или заказать обратный звонок. В ответ получите коммерческое предложение, которое будет содержать индивидуальную стратегию с учетом требований и поставленных задач
Работаем по будням с 9:00 до 18:00. Заявки, отправленные в выходные, обрабатываем в первый рабочий день до 12:00.
Спасибо, ваш запрос принят и будет обработан!
Эйч Маркетинг