Оператор Twig IF анализирует отрицательное целое число как положительное - PullRequest
0 голосов
/ 17 марта 2020

Я пытаюсь использовать оператор Twig (версия 2.x) if / elseif / else для отображения некоторого текста, основанного на балансе ордера, но кажется, что Twig анализирует отрицательное целое число как положительное.

{% if (order.balance) > 0 %}
You have EUR {{ order.open_amount }} left to pay!
{% elseif (order.balance) < 0 %}
You have paid to much, the remainder will be deposited into your account.
{% else %}
You have paid, thank you.
{% endif %}

order.balance подается в Twig в виде целого числа и может быть отрицательным, 0 или положительным.

Однако фрагмент кода имеет следующий результат:

order.balance = 0 Ожидаемый: Вы заплатили, спасибо. Факт: Вы заплатили, спасибо.

order.balance = 29999 Ожидается: у вас осталось 299,99 евро для оплаты! Фактически: Вам осталось заплатить 299,99 евро!

order.balance = -10001 Ожидаемый: вы заплатили много, остаток будет зачислен на ваш счет. Фактически: Вам осталось заплатить -100,01 евро!

Логика c, которую я придерживаюсь, более или менее соответствует описанию в примере здесь: https://twig.symfony.com/doc/2.x/tags/if.html

Что мне здесь не хватает?

Ответы [ 2 ]

0 голосов
/ 18 марта 2020

Я попытался вставить 3 разных варианта в виде 3 разных операторов IF, и тогда все получилось нормально, лучше избегать, если / когда возможно, структур / elseif / else с Twig?

{% if order.balance > 0 %}You have EUR {{ order.open_amount }} left to pay!{% endif %}
{% if order.balance < 0 %}You have paid to much, the remainder will be deposited into your account.{% endif %}
{% if order.balance == 0 %}You have paid, thank you.{% endif %}

Делать это как это и работает отлично.

0 голосов
/ 18 марта 2020

Вы только что перевернули свое условие или предложение, которое хотите отобразить, или свою логику c, даже.

{% if order.balance < 0 -%} {#- that condition was > 0 -#}
    You have EUR {{ order.open_amount }} left to pay!
{% elseif order.balance > 0 -%} {#- and this one was < 0 -#}
    You have paid to much, the remainder will be deposited into your account.
{% else -%}
    You have paid, thank you.
{% endif %}

Вот скрипка, представляющая это: https://twigfiddle.com/r3cdr8

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...