Laravel - Blade Templates: A Beginner's Guide
Здравствуйте, начинающие веб-разработчики! Сегодня мы окунемся в чудесный мир шаблонизатора Blade от Laravel. Не волнуйтесь, если вы никогда раньше не писали код — я буду вашим доброжелательным проводником в этом путешествии, и мы будем двигаться шаг за шагом.

Что такое Blade?
Blade — это мощный шаблонизатор Laravel. Представьте его как магический инструмент, который помогает нам создавать динамичные и повторно используемые HTML-шаблоны. Это как иметь супер-умного ассистента, который может заполнить пробелы на ваших веб-страницах реальными данными.
Почему использовать Blade?
- Он простой и легкий для изучения.
- Он делает ваш код чище и более читаемым.
- Он помогает избежать повторения ( помните, разработчики ленивы — в хорошем смысле!).
Теперь давайте натянем рукава и начнем!
Шаги для создания шаблона Blade
1. Создание главного шаблона
Сначала нам нужно создать главный шаблон. Это как скелет вашего веб-сайта — он содержит те части, которые остаются одинаковыми на каждой странице.
Создайте новый файл layout.blade.php в директории resources/views:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>@yield('title')</title>
</head>
<body>
<header>
<h1>My Awesome Website</h1>
</header>
<main>
@yield('content')
</main>
<footer>
<p>© 2023 My Awesome Website</p>
</footer>
</body>
</html>
Разберем это:
-
@yield('title'): Это говорит Blade: "Эй, мы заполним заголовок позже для каждой страницы." -
@yield('content'): Это место, где будет идти основное содержимое каждой страницы.
2. Создание дочерних шаблонов
Теперь создадим дочерний шаблон, который будет использовать наш главный шаблон. Создайте новый файл home.blade.php:
@extends('layout')
@section('title', 'Home Page')
@section('content')
<h2>Welcome to My Awesome Website!</h2>
<p>This is the home page content.</p>
@endsection
Вот что происходит:
-
@extends('layout'): Это говорит Blade использовать наш файлlayout.blade.phpв качестве основы. -
@section('title', 'Home Page'): Это заполняет заголовок, который мы оставили пустым earlier. -
@section('content'): Это место, где мы放置им уникальное содержимое для этой страницы.
3. Отображение данных
Blade действительно блестяще справляется с отображением данных. Давайте представим, что мы хотим показать список фруктов. Мы обновим наш home.blade.php:
@extends('layout')
@section('title', 'Home Page')
@section('content')
<h2>Welcome to My Awesome Website!</h2>
<p>This is the home page content.</p>
<h3>Our Fruit Selection:</h3>
@if(count($fruits) > 0)
<ul>
@foreach($fruits as $fruit)
<li>{{ $fruit }}</li>
@endforeach
</ul>
@else
<p>Sorry, we're all out of fruit!</p>
@endif
@endsection
В этом примере:
-
@ifи@else: Эти директивы позволяют нам принимать решения в шаблоне. -
@foreach: Это помогает нам循环 по нашему списку фруктов. -
{{ $fruit }}: Двойные фигурные скобки говорят Blade отображать значение переменной.
4. Использование компонентов Blade
Компоненты Blade — это как LEGO-кирпичики для вашего веб-сайта. Это повторно используемые фрагменты, которые вы можете использовать на разных страницах. Давайте создадим простой компонент для кнопки.
Создайте новый файл resources/views/components/button.blade.php:
<button class="btn btn-{{ $type ?? 'primary' }}">
{{ $slot }}
</button>
Теперь мы можем использовать эту кнопку в нашем home.blade.php:
@extends('layout')
@section('title', 'Home Page')
@section('content')
<h2>Welcome to My Awesome Website!</h2>
<p>This is the home page content.</p>
@component('components.button', ['type' => 'success'])
Click me!
@endcomponent
@endsection
Это создаст кнопку с текстом "Click me!" и стилем "success".
Шпаргалка по директивам Blade
Вот удобная таблица了一些 часто используемых директив Blade:
| Директива | Назначение |
|---|---|
| @if | Условное выражение |
| @else | Альтернатива для @if |
| @elseif | Альтернативное условие |
| @foreach | Цикл по массиву |
| @for | Цикл for |
| @while | Цикл while |
| @switch | Оператор switch |
| @yield | Определение секции в макете |
| @section | Определение содержимого для макета |
| @extends | Указание, какой макет использовать |
| @include | Включение другого представления |
| @auth | Проверка, аутентифицирован ли пользователь |
| @guest | Проверка, является ли пользователь гостем |
Помните, практика makes perfect! Не бойтесь экспериментировать с этими директивами и создавать свои шаблоны. Before you know it, вы станете ниндзя Blade, резать HTML, как горячий нож сквозь масло!
За годы преподавания я понял, что лучший способ учиться — это делать. Так почему бы не попробовать создать простой шаблон блога, используя то, что мы узнали? Начните с главного шаблона, создайте страницы для главной, о нас и записей в блоге, и используйте мощные функции Blade, чтобы сделать ваш код чистым и DRY (Don't Repeat Yourself).
Счастливого кодирования, и пусть Blade будет с вами! ?
Credits: Image by storyset
