РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
4 of 1392 menu

Директива section

Директива section в Blade позволяет определить блок контента, который будет передан в родительский макет. Она используется в дочерних шаблонах для заполнения областей, объявленных через yield в родительском шаблоне. Первым параметром передаётся имя секции, вторым - содержимое секции. Секция может быть определена как с использованием блочного синтаксиса, так и с помощью однострочной записи.

Синтаксис

@section('section_name') content @endsection {{-- или короткая запись --}} @section('section_name', 'content')

Пример

Давайте создадим родительский макет с областью для контента:

<html> <head> <title>@yield('title', 'Default Title')</title> </head> <body> <div class="container"> @yield('content') </div> </body> </html>

Теперь создадим дочерний шаблон, который определяет секции:

@extends('layouts.app') @section('title', 'Home Page') @section('content') <h1>Welcome to Home Page</h1> <p>This is the content section.</p> @endsection

Результат рендеринга шаблона:

<html> <head> <title>Home Page</title> </head> <body> <div class="container"> <h1>Welcome to Home Page</h1> <p>This is the content section.</p> </div> </body> </html>

Пример

Давайте используем секцию с условной логикой внутри:

@extends('layouts.app') @section('content') @if (Auth::check()) <h1>Welcome, {{ Auth::user()->name }}</h1> @else <h1>Welcome, Guest</h1> @endif <ul> @foreach ([1, 2, 3, 4, 5] as $item) <li>Item number {{ $item }}</li> @endforeach </ul> @endsection

Результат выполнения кода для авторизованного пользователя:

<html> <head> <title>Default Title</title> </head> <body> <div class="container"> <h1>Welcome, John Doe</h1> <ul> <li>Item number 1</li> <li>Item number 2</li> <li>Item number 3</li> <li>Item number 4</li> <li>Item number 5</li> </ul> </div> </body> </html>

Пример

Давайте создадим секцию, которая включает в себя другой шаблон:

<header> <nav> <a href="/">Home</a> <a href="/about">About</a> <a href="/contact">Contact</a> </nav> </header>
@extends('layouts.app') @section('content') @include('components.header') <h1>About Us</h1> <p>This page contains information about our company.</p> @endsection

Результат выполнения кода:

<html> <head> <title>Default Title</title> </head> <body> <div class="container"> <header> <nav> <a href="/">Home</a> <a href="/about">About</a> <a href="/contact">Contact</a> </nav> </header> <h1>About Us</h1> <p>This page contains information about our company.</p> </div> </body> </html>

Пример

Давайте используем секцию для передачи данных из контроллера:

<?php namespace App\Http\Controllers; use App\Models\Article; use Illuminate\View\View; class ArticleController extends Controller { public function index(): View { $articles = Article::where('status', 'published')->get(); return view('pages.articles', ['articles' => $articles]); } } ?>
@extends('layouts.app') @section('title', 'Articles List') @section('content') <h1>Published Articles</h1> @foreach ($articles as $article) <div class="article"> <h2>{{ $article->title }}</h2> <p>{{ $article->description }}</p> <small>Published: {{ $article->created_at->format('d.m.Y') }}</small> </div> @endforeach @endsection

Результат выполнения кода:

<html> <head> <title>Articles List</title> </head> <body> <div class="container"> <h1>Published Articles</h1> <div class="article"> <h2>First Article</h2> <p>This is the description of first article.</p> <small>Published: 15.01.2026</small> </div> <div class="article"> <h2>Second Article</h2> <p>This is the description of second article.</p> <small>Published: 14.01.2026</small> </div> <div class="article"> <h2>Third Article</h2> <p>This is the description of third article.</p> <small>Published: 13.01.2026</small> </div> </div> </body> </html>

Смотрите также

  • директива yield,
    которая отображает содержимое секции в родительском шаблоне
  • директива extends,
    которая указывает, какой родительский шаблон наследуется
  • директива parent,
    которая позволяет добавить контент к существующей секции
  • директива include,
    которая включает содержимое другого шаблона
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить