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

Директива switch

Директива @switch используется в Blade-шаблонах для сравнения переменной с множеством значений и выполнения соответствующего блока кода. В паре с ней используются директивы @case, @break и @default. Директива принимает один параметр - выражение, значение которого сравнивается с вариантами в блоках @case. При совпадении выполняется код внутри блока до ближайшей директивы @break. Если ни один вариант не подошёл, выполняется блок @default.

Синтаксис

@switch($variable) @case('value1') <p>Value is 1</p> @break @case('value2') <p>Value is 2</p> @break @default <p>Value is unknown</p> @endswitch

Пример

Рассмотрим базовое использование директивы @switch для отображения статуса пользователя:

@php $status = 'active'; @endphp <h1>User Profile</h1> @switch($status) @case('active') <p>User is active</p> @break @case('inactive') <p>User is inactive</p> @break @case('banned') <p>User is banned</p> @break @default <p>Unknown status</p> @endswitch

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

<h1>User Profile</h1> <p>User is active</p>

Пример

Использование нескольких вариантов для одного блока кода с помощью падения через блоки @case:

@php $orderStatus = 2; @endphp @switch($orderStatus) @case(0) @case(1) <p>Order is pending</p> @break @case(2) <p>Order is processing</p> @break @case(3) <p>Order is completed</p> @break @default <p>Unknown order status</p> @endswitch

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

<p>Order is processing</p>

Пример

Использование директивы @switch с данными из переменной, переданной из контроллера:

<?php namespace App\Http\Controllers; use Illuminate\Http\Request; class UserController extends Controller { public function show($id) { $role = 'admin'; return view('user.show', ['role' => $role]); } } ?>
@switch($role) @case('admin') <h2>Administrator Panel</h2> @break @case('editor') <h2>Editor Dashboard</h2> @break @case('user') <h2>User Profile</h2> @break @default <h2>Guest View</h2> @endswitch

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

<h2>Administrator Panel</h2>

Пример

Применение директивы @switch для отображения разных блоков в зависимости от типа сообщения:

@php $messageType = 'error'; @endphp <div class="message-container"> @switch($messageType) @case('success') <div class="alert alert-success">Operation completed successfully</div> @break @case('warning') <div class="alert alert-warning">Please check your input</div> @break @case('error') <div class="alert alert-danger">An error has occurred</div> @break @default <div class="alert alert-info">Information message</div> @endswitch </div>

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

<div class="message-container"> <div class="alert alert-danger">An error has occurred</div> </div>

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

  • директива @if,
    которая выполняет условную проверку
  • директива @unless,
    которая выполняет код при ложном условии
  • директива @forelse,
    которая обрабатывает пустые коллекции
  • директива @empty,
    которая проверяет пустоту переменной
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить