0

I have the script written in TWIG.

Weight: {{ doc.weight }} kgs<br />

// This part of script shows text information from "detail" and "info" MySQL fields ONLY IF these fields is NOT empty

                {% if "" == doc.info_hl %}
                    {% if '' != doc.detail_code %}
                        <b>Info: {{ doc.info }}</b>
                    {% endif %}
                {% else %}
                    Info: {{ doc.info_hl|raw }}
                {% endif %}
                <br />

                {% if "" == doc.detail_code_hl %}
                    {% if '' != doc.detail_code %}
                        <b>Details: {{ doc.detail_code }}</b>
                    {% endif %}
                {% else %}
                    <b>Details: {{ doc.detail_code_hl|raw }}</b>
                {% endif %}

Sometimes MySQL field "weight" have values "0.00"

How to modify the code above - DO NOT SHOW "weight" MySQL field IF value in this field "0.00" ? We can see above how we can do it with empty text fields, but how to do that with decimal fields equals to "0.00" ?

Thanks in advance for any hint to try !

Serge
  • 679
  • 1
  • 9
  • 23
  • I do not see `weight` in your code. Please provide the relevant block of code to provide more context, as well as show a good faith effort to resolve your issue. – Mike Apr 25 '15 at 12:55
  • Weight: {{ doc.weight }} kgs
    - in the beggining of the code above !
    – Serge Apr 25 '15 at 13:00
  • @Ninir do you mean `{% if "0.00" == doc.weight %} {% if '' != doc.weight %} Weight: {{ doc.weight }} kgs` – Serge Apr 25 '15 at 13:07
  • I mean `{% if '0.00' == doc.weight %} Weight: {{ doc.weight }} kgs {% endif %}`. According to the value you want to check, the above will fit your needs. However, Mike is right saying that if you want to check that doc.weight is not empty and not 0, then checking `{% if doc.weight is not empty %}Weight: {{ doc.weight }} kgs {% endif %}` would be even better – Ninir Apr 25 '15 at 13:14
  • @Ninir it works `{% if '0.00' == doc.weight %} Weight: {{ doc.weight }} kgs {% endif %}` but vise versa - it shows all where weight '0.00' and DO NOT show all other. It's very near a solution I'm looking for - but I need something `{% if NOT '0.00' == doc.weight %}` ...but I can't find such TWIG syntax "if NOT".. – Serge Apr 25 '15 at 13:24
  • @Ninir YES - it finally works, you're right, I tried `if not` but forgot to add round brackets `('0.00' == doc.weight)`. So the final code is `{% if not ('0.00' == doc.weight) %} Weight: {{ doc.weight }} {% endif %}` - it hides all lines where weight = 0.00 and shows all others ! – Serge Apr 25 '15 at 13:38
  • @Serge Made an official answer, so you can select the appropriate answer to it :) – Ninir Apr 25 '15 at 13:40
  • @Ninir Done :) have a nice day ! – Serge Apr 25 '15 at 13:52

2 Answers2

1

What about simply write

{% if '0.00' != doc.weight %} Weight: {{ doc.weight }} kgs {% endif %}

or even better

{% if not ('0.00' == doc.weight) %}... {% endif %}

?

Ninir
  • 441
  • 4
  • 9
0

Please have a look at the is empty test in the Twig documentation. This test operates the same as the PHP empty() function. Here is a handy Type Comparison Table to help you get any idea of what it will return.

If it is expected that this field will only ever contain numbers, or String representations of numbers, you can get around empty('0.00') === FALSE by adding a 0 to the variable:

empty('0.00' + 0) === TRUE
// In Twig: {%if ($value + 0) is empty %}

Here is a list of available Expressions available in Twig Conditionals.

Community
  • 1
  • 1
Mike
  • 1,968
  • 18
  • 35