Проверка переменной среды преложения в шаблонах Laravel

Проверка переменной среды преложения в шаблонах 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