Условные директивы Blade

В данном уроке мы с вами разберем условные директивы шаблонизатора Blade. С их помощью вы можете показывать или скрывать части HTML кода вашего представления в зависимости от различных условий.

Директива @if

Blade директива @if представляет собой команду если, которую вы можете использовать в вашем представлении.

Пусть, к примеру, из действия в представление передается переменная $age, содержащая возраст пользователя. Давайте выведем какую-нибудь часть представление только в том случае, если пользователю уже есть 18 лет:

@if ($age >= 18) вам уже есть 18 лет @endif

Пусть из действия в представление передается номер дня недели. Сделайте так, чтобы, если передан номер воскресенья, то на экран вывелся текст 'Воскресенье'. Пусть текст выводится в абзаце.

Модифицируйте предыдущую задачу так, чтобы на экран выводилось названия дня недели в том случае, если сегодня выходной день (то есть или суббота или воскресенье). Для решения задачи напишите две директивы @if.

Директива @else

Следующий пример демонстрирует работу директивы @else, работающей подобно своему PHP аналогу:

@if ($age >= 18) вам уже есть 18 лет @else вам еще нет 18 лет @endif

Пусть из действия в представление передается номер дня недели. Сделайте так, чтобы, если номер дня недели соответствует выходному дню, то вывелось сообщение об этом, в противном случае выведите сообщение о том, что передан номер рабочего дня недели.

Директива @elseif

Следующий пример демонстрирует работу директивы @elseif:

@if ($age > 18) вам больше 18 лет @elseif ($age == 18) вам ровно 18 лет @else вам еще нет 18 лет @endif

Пусть из действия в представление передается номер месяца. С помощью директив @if и @elseif определите пору года, в которую попадает переданный месяц. Если переданный номер не соответствует ни одному месяцу - выведите сообщение об этом.

Директива @unless

Директива @unless представляет собой команду пока не и не имеет аналога в PHP. Рассмотрим работу данной директивы на практическом примере.

Пусть в переменной $isAuth хранится пометка об авторизации пользователя. В том случае, если пользователь еще не авторизован, выведем ему сообщение об этом, пока используя директиву @if:

@if (!$isAuth) вы еще не авторизованы @endif

Как вы видите, перед именем переменной нам приходится писать восклицательный знак, чтобы сделать отрицание.

Можно избавится от этого восклицательного знака, воспользовавшись директивой @unless, которая сама по себе является отрицанием:

@unless ($isAuth) вы еще не авторизованы @endunless

Пусть из действия в представление передается возраст пользователя. Если возраст пользователь несовершеннолетний, то выведите сообщение об этом. Для решения задачи воспользуйтесь директивой @unless.

Более сложные команды в условиях

В условиях можно давать более сложные команды. Пусть, например, из представления передается массив. Давайте подсчитаем количество элементов в этом массиве и, в зависимости от количества, выведем разный текст:

@if (count($arr) >= 1) в массиве есть записи @else в массиве нет записей @endif

Пусть из действия в представление передается массив с числами. Если количество элементов в этом массиве больше нуля, то выведите на экран сумму этих элементов, а если количество элементов равно нулю, то выведите сообщение об этом.