Проверка переменной среды преложения в шаблонах Laravel
Очень часто приходится выполнять проверку в представлениях Laravel, и показывать данные в зависимости от конкретного условия. В этой статье разберёмся, как выполнить условный рендеринг в blade-шаблоне в зависимости от APP_ENV-перменной в Laravel приложении.
Например, вам может понадобиться проверить, в какой среде работает приложение - production, или development. B в зависимости от этого, подключать, или же, игнорировать какие-то части представления. И вот, как вы можете это сделать:
@if(App::environment('production'))
{{-- Приложение работает в среде "production" --}}
@endif
Или же, даже так:
@if(App::environment('production'))
{{-- Приложение работает в среде "production" --}}
@else
{{-- Подключаем dev-скрипты... --}}
@endif
Мы просто вызвали метод App::environment()
чтобы определить текущее окружение, в котором запущено приложение. И это отлично работает, но, как вы видите, этот метод немного избыточен.
Для подобных целей, Laravel включает в себя встроенную директиву получения текущего окружение приложения. И вот, каким образом можно переписать код выше:
@production
{{-- Приложение работает в среде "production" --}}
@endproduction
Как вы можете видеть, запись сократилась намного, и больше не выглядит так устрашающе. Минус в том, что подобная директива существует только для production среды.
Если вы хотите проверить в blade-шаблоне несколько окружений в одном условии, вы можете сделать это подобным образом:
@env('local', 'staging')
{{-- Приложение работает либо в среде "local" либо "staging" --}}
@endenv
{{-- Или же, только для одной --}}
@env('staging')
{{-- Приложение работает в среде "staging" --}}
@endenv