Нельзя использовать OR в шаблоне лезвия

Когда я разрабатываю локально на 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 вы используете?

Kapitan Teemo 27.10.2018 10:49

laravel 5.7, вот скомпилированная строка файла представления, где она не работает: <div class = "php echo e ($ menuclass или 'menu') Я удалил некоторые символы, чтобы stackoverflow отображал строку. Очевидно, что он не выполняет никаких isset ($ foo)? $ foo: 'default', как в сообщении в блоге, упомянутом в 2014 г.

niko craft 27.10.2018 10:52
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Поиск нового уровня в Laravel с помощью MeiliSearch и Scout
Поиск нового уровня в Laravel с помощью MeiliSearch и Scout
Laravel Scout - это популярный пакет, который предоставляет простой и удобный способ добавить полнотекстовый поиск в ваше приложение Laravel. Он...
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
В последние годы архитектура микросервисов приобрела популярность как способ построения масштабируемых и гибких приложений. Laravel , популярный PHP...
Как построить CRUD-приложение в Laravel
Как построить CRUD-приложение в Laravel
Laravel - это популярный PHP-фреймворк, который позволяет быстро и легко создавать веб-приложения. Одной из наиболее распространенных задач в...
3
2
3 109
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Оператор 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'}}">

здесь - это руководство по обновлению.

Другие вопросы по теме