Подтвердить что ты не робот

Как эхо значение по умолчанию, если значение не задано кликом

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

{{ $foo['bar'] }}

Я бы знал, что лучший способ сделать это,

{{ (isset($foo['bar']) ? $foo['bar'] : 'baz' }}

или есть лучший способ сделать это?

Спасибо:)

4b9b3361

Ответ 1

С Laravel 4.1+ вы можете просто сделать это следующим образом:

{{ $Variable or "Default Message" }}

Это то же самое, что и:

echo isset($Variable) ? $Variable : 'Default Message'; 

Изменить: на боковой ноте выше поддерживается в PHP 7+, используя

echo $Variable ?? 'Default Message';

Ответ 2

PHP 5.3 тройной синтаксис ярлыков работает в шаблонах Blade:

{{ $foo->bar ?: 'baz' }}

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

Ответ 3

Я рекомендую установить значение по умолчанию в вашем контроллере, вместо того, чтобы делать обход в вашем представлении.

Это лучший способ, поскольку он сохраняет логику из вашего представления и сохраняет разметку представления чистой.

Например, в вашем контроллере перед передачей данных в представление:

if(!isset($foo['bar'])){
     $foo['bar'] = 'baz';
}

Ответ 4

В то время как ответ Криса Б совершенно справедлив; Я чувствовал, возможно, это вопрос, который может иметь альтернативный ответ. Некоторые предпочли бы не делать их контроллеры "жирными", и в этом случае, по крайней мере, использование Presenter может быть ответом, который вы ищете для обеспечения большой гибкости в представлениях вашего приложения.

Взгляните на следующий проект/пакет на Github. Readme довольно надежный, с несколькими примерами, чтобы вы начали.

Это позволит вам делать то, что вы просили, и просто вызвать

{{ $foo['bar'] }}

в вашем представлении.