Сравнить значение со строкой IF/FOR
В настоящее время я пытаюсь сравнить значение каждого сохраненного объекта и организовать результаты в определенных разделах. Я не могу на всю жизнь найти, как сравнить переменную со строкой, используя веточку. Все, что я пробовал на ошибки, за исключением следующего кода, который вместо сбоя просто пропускает IF и показывает ELSE. Я предполагаю, что я все понял неправильно, но в документации Twig нет упоминания о том, как это сделать (я думаю), и я начинаю думать, что я все делаю неправильно. Может быть, я должен делать это в контроллере?
{% 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 %}
Результат =
ПОТЕРПЕТЬ ПОРАЖЕНИЕ! Сеть 2
ПОТЕРПЕТЬ ПОРАЖЕНИЕ! Стартеры 0
ПОТЕРПЕТЬ ПОРАЖЕНИЕ! Стартеры 1
ПОТЕРПЕТЬ ПОРАЖЕНИЕ! Пустыни 3
ПОТЕРПЕТЬ ПОРАЖЕНИЕ! Сеть 4
Любое предложение очень приветствуется.
1 ответ
Все результаты заканчиваются на 's', а условные операторы - нет. Пытаться:
{% for product in entity.product %}
{% if product.dish.DishCat == 'Starters' %}
<h3>Starter</h3>
<p>{{ product.dish }}</p>
{% elseif product.dish.Dishcat == 'Mains'%}
<h3>Main</h3>
<p>{{ product.dish }}</p>
{% elseif product.dish.Dishcat == 'Deserts'%}
<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 %
Я думаю, что вы должны попытаться исправить переменные и не допустить, чтобы все они заканчивались символом "s".