Laravel в темплейте blade пропускает несуществующеее поле

mstdmstd

Новичок
Всем привет,
Подскажите, в laravel 5.4 при вызове несуществующего поля NoField обьекта в темплейте blade:

HTML:
<a href="javascript:backendCategory.deleteCategory( '{{$nextCategory->id}}', '{{ addslashes($nextCategory->NoField) }}', '{{$page_parameters_with_sort}}' )">
<i class="fa fa-close text-danger"></i>
</a>
Я не получаю ошибку выполнения, как ожидал, а вместо этой переменной подставляется пустая строка.

В .env :
Код:
APP_DEBUG=true
APP_LOG_LEVEL=debug

Это еще какие-то настройки?


Спасибо!
 

Alexey Mezenin

Новичок
Если поле может быть пустым или его может не быть совсем, просто добавь ручную проверку:

Код:
{{ empty($nextCategory->NoField) ? 'It\'s empty!' : addslashes($nextCategory->NoField) }}
 

fixxxer

К.О.
Партнер клуба
Не по теме, но:
Не надо так делать. Addslashes не имеет никакого отношения к javascript. То, что в некоторых случаях оно делает то же самое - простое совпадение. Пример, когда делает по-разному, и получится невалидный JS: "\n"

Для формирования корректного javascript-значения прекрасно подходит json_encode, заодно и кавычки вокруг писать не надо.

По теме - blade это не template engine, а php-макропроцессор, так что все, что справедливо в php, справедливо и в blade. Если в php-коде $nextCategory->NoField не даст ошибки, то и в blade так же.
 
Последнее редактирование:
Сверху