Задача действительно «простая», но в то же время сложная.
Так что я хочу этого
{% if currentUrl != '/' %}
чтобы также соответствовать
'/home/index'
Вот что я пробовал, и ничего из этого не сработало.
{% if currentUrl != '/' or currentUrl == '/home/index'%}
{% if currentUrl != '/' or currentUrl != '/home/index'%}
{% if (currentUrl != '/') or (currentUrl != '/home/index') %}
и еще кое-что..
это мой синтаксис или почему я не получаю тот же результат, что и с
{% if currentUrl != '/' %}
Спасибо






Вы неправильно используете логическое сравнение ИЛИ.
{% 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 %}
Спасибо, я никогда не знал о «не в», очень чистом решении.