В данном уроке мы с вами разберем условные директивы шаблонизатора 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
Пусть из действия в представление передается массив с числами. Если количество элементов в этом массиве больше нуля, то выведите на экран сумму этих элементов, а если количество элементов равно нулю, то выведите сообщение об этом.