Полезные директивы Laravel Blade
Доброго времени суток. В данной статье мы поговорим о шаблонизаторе Laravel – Blade. Точнее о некоторых полезных его директивах, которые позволяют нам значительно сократить код. И дальше мы приведем некоторые директивы и код, которым можно заменить данные директивы (но код становится громоздким и менее читабельным)
Ну, что приступим.
Проверка авторизован ли пользователь.
Проверить авторизован ли пользователь в шаблоне мы можем следующим образом:
@if(auth()->user()) // The user is authenticated. @endif
Но есть альтернатива данному методу:
@auth // The user is authenticated. @endauth
Является ли пользователь гостем.
Для проверки является ли пользователь гостем (т.е. не авторизован) мы можем с помощью следующей конструкции:
@if(auth()->guest()) // The user is not authenticated. @endif
Но в Laravel Blade есть более короткая альтернатива:
@guest // The user is not authenticated. @endguest
Также мы можем добавить @else
@guest // The user is not authenticated. @else // The user is authenticated. @endguest
Насколько код стал короче и читабельней.
Как подключить представление при выполнении определенного условия
Нам необходимо, например, подключить представление для отображения комментариев, если есть эти комментарии. Отлично, воспользуемся:
@if($post->hasComments()) @include('posts.comments') @endif
Но есть более короткая запись:
@includeWhen($post->hasComments(), 'posts.comments');
Удобно и красиво.
Как подключить представление, если оно существует
Например, нам надо подключить представление, но подключить его только в том случае, если оно существует. Нет ничего проще:
@if(view()->exists('view-name')) @include('view-name') @endif
И на этот случай есть более удобная blade-директива:
@includeIf('view-name')
Как подключить первое представление, если оно существует, и если его нет, то подключить второе представление
Используем уже знакомую нам конструкцию:
@if(view()->exists('first-view-name')) @include('first-view-name') @else @include('second-view-name') @endif
И упрощенная альтернатива:
@includeFirst(['first-view-name', 'second-view-name']);
Заключение.
Мы с вами рассмотрели несколько blade-директив, которые помогают нам уменьшить код и увеличить читабельность.
Вольный перевод статьи «Пять полезных директив Laravel Blade», поэтому не судите строго.