twig Условие if Не равно строке ( !== 'string'), not in
Primary tabs
Задача
Сравнить значение переменной в шаблоне twig с какой-то строкой.
Решение
- Первый вариант - сравнивать значение "в лоб", с помощью оператора ==:
{% if category.name == 'Скоро в продаже' %} <div class= "type-new"> <img src="/images/soon.png"> </div> {% else %} <div class="type"> <img src="/images/soon.png"> </div> {% endif %}
- Оператор, соответствующий !== в twig - это not in. Правда, как показано в документации, not in используется как конструкция, ищущая значение в массиве. В частном случае, значение в массиве может быть одно:
{% if pageTitle not in ['Каталог товаров'] %}
- Также, чтобы совершить действия при условии НЕравенства, просто оставьте поле после if пустым, а else заполните действием:
{% if pageTitle == 'Каталог товаров' and category.name == 'Скоро в продаже' %} {% else %} <div> {{ category.name }} </div> {% endif %}
- Если задача усложняется и необходимо, чтобы переменная была не равна пустой строке, можно использовать не саму переменную, а её длину (фильтр lenght). И также меняем местами "если" и "иначе":
{% if pathToPhoto|length == null %} <a href="#"> <img src="/images/no-photo.png"> </a> {% else %} <a href="#"> <img src="{{ pathToPhoto }}"> </a> {% endif %}
- Log in to post comments
- 22251 reads
vedro-compota
Thu, 02/08/2018 - 17:54
Permalink
варианты
варианты:
И ещё -- в теории некорректно строить проверку на обычном имени (которое может переводиться напр, на английский), если бы сайт поддерживал перевод. Надо использовать какой-то другой мехнизм, например дополнительное "машинное имя" типа:
_____________
матфак вгу и остальная классика =)
melisa
Fri, 02/09/2018 - 13:00
Permalink
1. Конечно, проверяла.
1. Конечно, проверяла.
Вариант с not также не работает.
2. Согласна, косяк
vedro-compota
Fri, 02/09/2018 - 13:19
Permalink
Конечно, проверяла.
может нужны скобки просто? он должен работать. Надо выяснять почему.
_____________
матфак вгу и остальная классика =)
melisa
Mon, 02/12/2018 - 15:40
Permalink
not in
Моя ошибка была в синтаксисе.
Как показано в документации, not in используется как конструкция, ищущая значение в массиве. В частном случае, значение в массиве может быть одно:
добавила это в текст статьи
vedro-compota
Tue, 02/13/2018 - 12:34
Permalink
not это тоже самое что и !.
not это тоже самое что и !. Едва ли это просто приставка к in.
_____________
матфак вгу и остальная классика =)