Blade — это встроенный в Laravel механизм шаблонов, который позволяет легко создавать многоразовые и модульные представления. В этом блоге мы рассмотрим некоторые из наиболее полезных функций Blade, включая наследование шаблонов, управляющие структуры и многое другое.

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

Одной из самых мощных функций Blade является поддержка наследования шаблонов. Это позволяет вам определить базовый шаблон, который содержит общий макет и разметку для вашего приложения, а затем расширить этот шаблон для создания более конкретных представлений.

Чтобы определить базовый шаблон, создайте новый файл Blade и добавьте общую разметку, которую вы хотите использовать во всех представлениях. Например, вы можете создать файл с именем layouts/app.blade.php, содержащий следующее:

<!doctype html>
<html>
<head>
    <title>@yield('title') - My App</title>
</head>
<body>
    <header>
        <!-- Navigation Menu -->
    </header>
    <main>
        @yield('content')
    </main>
    <footer>
        <!-- Footer Content -->
    </footer>
</body>
</html>

Обратите внимание на директивы @yield, которые определяют заполнители для заголовка страницы и содержимого. Теперь мы можем расширить этот базовый шаблон в любом другом файле Blade и при необходимости переопределить заполнители. Например, мы могли бы создать новый файл с именем pages/home.blade.php, расширяющий шаблон layouts/app.blade.php:

@extends('layouts.app')

@section('title', 'Home Page')

@section('content')
    <!-- Page Content Goes Here -->
@endsection

Когда это представление отобразится, Laravel заменит директивы @yield в базовом шаблоне содержимым, определенным в дочернем представлении. В этом случае результирующий HTML будет выглядеть примерно так:

<!doctype html>
<html>
<head>
    <title>Home Page - My App</title>
</head>
<body>
    <header>
        <!-- Navigation Menu -->
    </header>
    <main>
        <!-- Page Content Goes Here -->
    </main>
    <footer>
        <!-- Footer Content -->
    </footer>
</body>
</html>

Этот подход позволяет легко определить согласованный макет и структуру для вашего приложения, в то же время позволяя настраивать содержимое каждой страницы.

Структуры управления:

Blade также предоставляет ряд полезных управляющих структур, которые позволяют вам условно отображать содержимое, циклически перебирать данные и многое другое.

Например, вы можете использовать директиву @if для условного отображения контента на основе логического значения:

@if($user->isAdmin())
    <p>Welcome, admin user!</p>
@endif

Вы также можете использовать директиву @foreach для циклического перебора набора данных:

<ul>
    @foreach($products as $product)
        <li>{{ $product->name }} - ${{ $product->price }}</li>
    @endforeach
</ul>

Это создаст неупорядоченный список названий продуктов и цен, где каждый элемент отображается с использованием переменной $product.

Blade — это мощный и гибкий механизм шаблонов, который позволяет легко создавать многоразовые и модульные представления в Laravel. Используя его поддержку наследования шаблонов и структур управления, вы можете легко создавать сложные и динамические пользовательские интерфейсы.

Если вы хотите узнать больше о шаблонах Blade и других функциях Laravel, обязательно ознакомьтесь с официальной документацией Laravel по адресу https://laravel.com/docs/10.x/blade.