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.