Когда я разрабатываю локально на win10 php7.2 выражение nginx, подобное работает отлично
<div class = "{{ $menuclass or 'menu'}}">
который дает
<div class = "menu">
но как только я развертываю его через laravel forge на машине ubuntu, он перестает работать, и я получаю это
<div class = "1">
Похоже, вместо этого:
isset($menuclass ) ? $menuclass : 'menu'
он просто возвращает 1
Есть идеи, почему?
Об этой функции писали здесь: https://laravel-news.com/blade-or-operator
Было ли это устаревшим в более поздних версиях laravel?
laravel 5.7, вот скомпилированная строка файла представления, где она не работает: <div class = "php echo e ($ menuclass или 'menu') Я удалил некоторые символы, чтобы stackoverflow отображал строку. Очевидно, что он не выполняет никаких isset ($ foo)? $ foo: 'default', как в сообщении в блоге, упомянутом в 2014 г.






Оператор Laravel or был изменен в laravel 5.7 на ??
The or Operator Likelihood Of Impact: High
The Blade "or" operator has been removed in favor of PHP's built-in ?? "null coalesce" operator, which has the same purpose and functionality:
попробуй это:
<div class = "{{ $menuclass ?? 'menu'}}">
здесь - это руководство по обновлению.
какую версию laravel вы используете?