Laravel Blade. Альтернативный метод объявления тернарного оператора и передача функции его результата как..

Vano

Новичок
в шаблонизаторе blade можно объявить тернарный оператор так:
PHP:
{{ isset($var) ? $var : 'default' }}
и альтернативный способ:
PHP:
{{ $var or 'default' }}
Есть проблема. Если такую конструкцию передавать сразу в параметр функции:
PHP:
{{ Form::text('email', $user->email or 'default' ...) }}
То в input подставится цифра 1. Если использовать привычный синтаксис,то всё работает исправно.

пробовал положить в скобки
PHP:
... ($user->email or 'default') ...
тот же результат

Есть возможность это поправить?
 

WMix

герр M:)ller
Партнер клуба
есть грязный хак если че
PHP:
{{--*/ $email =isset($user->email) ? $user->email : 'default' /*--}}
{{ Form::text('email', $email ...) }}
 

Vano

Новичок
Хз уж лучше, мне кажется, просто иссет запихнуть в параметр. Но всё равно спасибо.
А еще вопрос: Я тут потестил, если создавать инпуты через Form хелпер и в контроллере отдавать ->withInput() - то в value инпутов подставляются old('%attribute%'). Эт правда? Кто-нить знает на 100%?
 

AmdY

Пью пиво
Команда форума
не используй or, это очередной кривой костыль реализованный через сидельное место, так как использует зарезервированный оператор. Если используешь php 7 используй новый ??. А так лучше используй isset без всякой магии
 
Сверху