[RESOLU] if et existence d'une variable dans Twig

Petit nouveau ! | 1 Messages

30 avr. 2021, 06:26

Bonjour a tous,

je suis sur un projet en symfony 4.4

J'ai une liste d'adhérent qui ont ou pas des commandes. Dans mon tableau de liste adhèrent je mets un petit panier orange lorsqu'ils ont une commande non encore finalisé: c'a c'est bon.

Je veux leur mettre un petit panier rouge lorsqu'il n'ont pas encore commandé dans l'année scolaire.

Pour ceux qui n'ont aucune commande même les années précédentes pas de souci je vérifie si le tableaux commande est vide et si c'est le cas on mets un petit panier rouge.

Mais le problème vient de ceux qui ont eu des commandes par le passé , l'année précédente par exemple. Le tableau n'est plus vide. Donc je cherche une condition qui dirait "s'il n'y a pas de commande entre cette date et cette date" tu mets un panier rouge.
Mon twig:

Code : Tout sélectionner

<td class="text-center"> {% if ad.commandes is not empty %} {% for a in ad.commandes %} {% set dateFrom = date(dateCommandes.dateFrom).format('U') %} {% set dateTo = date(dateCommandes.dateTo).format('U') %} {% if date(a.dateattribution).format('U') > dateFrom %} {% if a.datecommande != null and a.dateattribution == null %} <div style="display: inline-block;border:none;color:orange;"> <i class="fas fa-shopping-bag "></i> </div>{% endif %} {% elseif date(a.dateattribution).format('U') > dateFrom and date(a.dateattribution).format('U') < dateTo %} <div style="display: inline-block;border:none;color:green;"> <i class="fas fa-shopping-bag"></i> </div> {% else %} <div style="display: inline-block;border:none;color:red;"> <i class="fas fa-shopping-bag"></i> </div> {% endif %} {% endfor %} {% else %} <div style="display: inline-block;border:none;color:red;"> <i class="fas fa-shopping-bag"></i> </div> {% endif %} </td> </td>
ad c'est mon entité des adhérents.
DateForm et DateTo c'est mes dates de début d'année et de fin d'année qui sont stocké dans ma base de données .
Pour vous donnez une idée:
Image
https://www.casimages.com/i/21043006344137022.jpg.html

Voila si quelqu'un a une idée , j'y suis depuis hier matin.

C'est bon j'ai trouvé. C'est un peu du bricolage mais c'a fonctionne:

Code : Tout sélectionner

<td class="text-center"> {% if ad.commandes is not empty %} {% for a in ad.commandes|reverse(true)|slice(0, 01) %} {% set dateFrom = date(dateCommandes.dateFrom).format('U') %} {% set dateTo = date(dateCommandes.dateTo).format('U') %} {% if date(a.dateattribution).format('U') > dateFrom %} {% if a.datecommande != null and a.dateattribution == null %} <div style="display: inline-block;border:none;color:orange;"> <i class="fas fa-shopping-bag "></i> </div>{% endif %} {% elseif date(a.dateattribution).format('U') > dateFrom and date(a.dateattribution).format('U') < dateTo %} {% else %} <div style="display: inline-block;border:none;color:red;"> <i class="fas fa-shopping-bag"></i> </div> {% endif %} {% endfor %} {% else %} <div style="display: inline-block;border:none;color:red;"> <i class="fas fa-shopping-bag"></i> </div> {% endif %} </td>