Сравнить значение со строкой IF / FOR

0

В настоящее время я пытаюсь сравнить ценность каждого сохраненного объекта и упорядочить результаты в определенных разделах. Я не могу для жизни меня найти, как сравнить переменную с строкой, используя веточку. Все, что я пробовал ошибку, за исключением следующего кода, который вместо сбоя просто пропускает 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 to here.
        <p> FAIL!</p>
        <p>{{product.dish.DishCat}} {{product.dish.id}}</p> //I print 'product.dish.DishCat' to ensure It actually got a value which it does...
    {% endif %}
{% endfor %}

Результат =

ПОТЕРПЕТЬ НЕУДАЧУ! Сеть 2

ПОТЕРПЕТЬ НЕУДАЧУ! Закуски 0

ПОТЕРПЕТЬ НЕУДАЧУ! Стартеры 1

ПОТЕРПЕТЬ НЕУДАЧУ! Пустыни 3

ПОТЕРПЕТЬ НЕУДАЧУ! Сеть 4

Любое предложение очень приветствуется.

  • 0
    на самом деле "Deserts"! = "Desert", а также "Mains"! = "Main", так что вы каждый раз сравниваете разные строки.
  • 0
    Также возможно, что dish - это объект, поэтому вам может потребоваться сделать что-то вроде {{ product.dish.name }}
Показать ещё 3 комментария
Теги:
twig
doctrine2
symfony-2.5

1 ответ

2
Лучший ответ

Все результаты заканчиваются "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 to here.
        <p> FAIL!</p>
        <p>{{product.dish.DishCat}} {{product.dish.id}}</p>
        //I print 'product.dish.DishCat' to ensure It actually got a value which it does...
   {% endif %}
{% endfor %

Я думаю, вы должны попытаться исправить переменные и не позволить всем им закончиться с 's'.

  • 0
    О, черт, как будто я потратил так много времени, пытаясь найти решение, и все время у меня было это правильно, за исключением только этого. Почувствуй себя настоящим идиотом ... Спасибо, что указал мне на это.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню