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

Директива hasSection

Директива hasSection применяется в шаблонах Blade для проверки, была ли определена секция с указанным именем в дочернем шаблоне. Она возвращает true, если секция существует, и false в противном случае. Первым параметром передаётся имя секции.

Синтаксис

@hasSection('sectionName') Секция существует @else Секция не определена @endif

Пример

Давайте проверим наличие секции 'content' в родительском шаблоне:

<html> <head> <title>Мой сайт</title> </head> <body> @hasSection('content') <div class="content"> @yield('content') </div> @else <p>Контент не определён</p> @endif </body> </html>

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

@extends('layouts.app') @section('content') <h1>Домашняя страница</h1> <p>Это контент домашней страницы</p> @endsection

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

<html> <head> <title>Мой сайт</title> </head> <body> <div class="content"> <h1>Домашняя страница</h1> <p>Это контент домашней страницы</p> </div> </body> </html>

Пример

Используем директиву hasSection внутри условия для отображения дополнительного блока:

<html> <body> <div class="sidebar"> @hasSection('sidebar') @yield('sidebar') @else <p>Боковая панель отсутствует</p> @endif </div> <div class="main"> @yield('main') </div> </body> </html>

Создадим дочерний шаблон без секции 'sidebar':

@extends('layouts.admin') @section('main') <h1>Панель управления</h1> <p>Добро пожаловать в панель управления</p> @endsection

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

<html> <body> <div class="sidebar"> <p>Боковая панель отсутствует</p> </div> <div class="main"> <h1>Панель управления</h1> <p>Добро пожаловать в панель управления</p> </div> </body> </html>

Пример

Используем hasSection для условного отображения заголовка страницы:

<html> <head> <title> @hasSection('title') @yield('title') - Мой сайт @else Мой сайт @endif </title> </head> <body> @yield('content') </body> </html>

Создадим дочерний шаблон с определённой секцией 'title':

@extends('layouts.base') @section('title', 'О нас') @section('content') <h1>О нашей компании</h1> <p>Мы занимаемся разработкой веб-приложений</p> @endsection

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

<html> <head> <title>О нас - Мой сайт</title> </head> <body> <h1>О нашей компании</h1> <p>Мы занимаемся разработкой веб-приложений</p> </body> </html>

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

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