Twig/symfony - множественное условие if

Задача действительно «простая», но в то же время сложная.

Так что я хочу этого

{% if currentUrl != '/' %}

чтобы также соответствовать

'/home/index'

Вот что я пробовал, и ничего из этого не сработало.

{% if currentUrl != '/' or currentUrl == '/home/index'%} {% if currentUrl != '/' or currentUrl != '/home/index'%} {% if (currentUrl != '/') or (currentUrl != '/home/index') %}

и еще кое-что..

это мой синтаксис или почему я не получаю тот же результат, что и с

{% if currentUrl != '/' %}

Спасибо

Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Введение в CSS
Введение в CSS
CSS является неотъемлемой частью трех основных составляющих front-end веб-разработки.
Как выровнять Div по центру?
Как выровнять Div по центру?
Чтобы выровнять элемент <div>по горизонтали и вертикали с помощью CSS, можно использовать комбинацию свойств и значений CSS. Вот несколько методов,...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Travel Booking Angular Template один из лучших Travel & Tour booking template in the world. 30+ валидированных HTML5 страниц, которые помогут...
1
0
146
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

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

Вы неправильно используете логическое сравнение ИЛИ.

{% if currentUrl != '/' or currentUrl != '/home/index'%}
  {# it is not one of them, but it could still be the other one #}
  {# it's never both of them so this block will always render #}
{% endif %}

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

{% if currentUrl != '/' and currentUrl != '/home/index'%}
  {# it is not one AND it is also not the other #}
  {# this block will not render if it is either of the specified urls #}
{% endif %}

Однако в вашем случае я бы рекомендовал использовать веточку inОператор содержания. Это выполняет проверку включения, возвращающую истину, если левый операнд содержится в правом. Это делает код более читаемым, а также его легче поддерживать, если позже вы решите, что вам нужно сопоставить другой URL-адрес, просто добавьте его в массив.

{% if currentUrl in ['/', '/home/index'] %}
  {# it's one of the urls #}
{% else %}
  {# it's a different url #}
{% endif %}

С not in возвращает true, если левый операнд не содержится в правом.

{% if currentUrl not in ['/', '/home/index'] %}
  {# it's a different url #}
{% else %}
  {# it's one of the urls #}
{% endif %}

Спасибо, я никогда не знал о «не в», очень чистом решении.

roibubble 05.06.2019 06:41

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