В настоящее время я пытаюсь сравнить значение каждого сохраненного объекта и упорядочить результаты в определенных разделах. Я не могу для жизни меня найти, как сравнить переменную с строкой, используя веточку. Все, что я пробовал, за исключением следующего кода, который вместо сбоя просто пропускает IF и показывает ELSE. Я предполагаю, что у меня все получилось неправильно, но в документации Twig нет упоминаний о том, как это сделать (я думаю), и я начинаю думать, что все пойдет по-другому. Может быть, я должен делать это в контроллере?Сравнение значения для строки IF/FOR Statement
{% for product in entity.product %}
{% if product.dish.DishCat == 'Starter' %}
<h3>Starter</h3>
<p>{{ product.dish }}</p>
{% elseif product.dish.Dishcat == 'Main'%}
<h3>Main</h3>
<p>{{ product.dish }}</p>
{% elseif product.dish.Dishcat == 'Desert'%}
<h3>Desert</h3>
<p>{{ product.dish }}</p>
{% else %} // Always just get's to here.
<p> FAIL!</p>
<p>{{product.dish.DishCat}} {{product.dish.id}}</p> //I print 'product.dish.DishCat' to ensure It's actually got a value which it does...
{% endif %}
{% endfor %}
Result =
СБОЙ! Сеть 2
FAIL! Стартеры 0
FAIL! Стартеры 1
FAIL! Пустыни 3
FAIL! Сеть 4
Любое предложение очень приветствуется.
Фактически «пустыни»! = «Пустыня», а также «Сеть»! = «Главная», чтобы вы каждый раз сравнивали разные строки. – ponciste
Также вероятно, что 'dish' - это объект, поэтому вам может понадобиться сделать что-то наподобие' {{product.dish.name}} ' – geoB
@geoB. Была ли моя глупая ошибка пропускать 's' с конца строка:/неловко. Product.Dish имеет метод _toString(), возвращающий «Имя», поэтому .name не требуется. – Doug