Problème de condition dans twig

Résolu/Fermé
europe21 Messages postés 63 Date d'inscription mardi 26 décembre 2017 Statut Membre Dernière intervention 4 février 2024 - Modifié le 24 août 2020 à 09:58
europe21 Messages postés 63 Date d'inscription mardi 26 décembre 2017 Statut Membre Dernière intervention 4 février 2024 - 24 août 2020 à 17:20
Bonjour,

Quelqu'un pourrait m'expliquer pourquoi mon else me repete 9 fois le nom et le prenom alors que la premiere condition lorsqu'elle est rempli me mets juste une fois le nom et le prenom ? Cela fait 2 heures que je suis dessus et je ne trouve pas de logique. J'ai simplifié la boucle expres pour que se soit plus clair.


<table class="table table-hover">
     <thead>
      <tr>
       
       <th class="text-center">Nom</th>
       <th class="text-center">Email</th>
       <th class="text-center">Catégorie</th>
       <th class="text-center">Licence</th>
       
       
       <th></th>
      </tr>
     </thead>
     <tbody>
     
                             {% for ad in pagination.data %}
 
      
   {% for cat in catadherent %}
          {% if (cat.title is same as(ad.subcategory)) %}
   <td class="text-center">{{ad.lastName}} {{ad.firstName}}</td>
      {% else %}
       
        <td>{{ad.lastName}} {{ad.firstName}}</td>
                            {% endif %}
       {% endfor %} 
       <td class="text-center">{{ad.email}}</td>
       <td class="text-center">{{ad.subcategory}}</td>
       <td class="text-center">
        <span class="">{{ad.toNumber}}</span>

       </td>
      
       <td>

.....
        

mon controller:
public function index(CategoryAdherentRepository $repo,$page, PaginationService $pagination)
    {
        
        $pagination->setEntityClass(Adherent::class)
            ->setPage($page);

            $repo = $this->getDoctrine()->getRepository(CategoryAdherent::class);
        $catadherent = $repo->findAll();
        $repo2 = $this->getDoctrine()->getRepository(Team::class);
        $team1 = $repo2->findAll();
        

        return $this->render('/admin/adherent/index.html.twig', [
            'pagination' => $pagination,
            'catadherent'  => $catadherent,
            'team1' => $team1
        ]);



EDIT : Correction des balises de code ( Ajout du LANGAGE .... ENCORE !!! )

ma table:


le resultat:


merci pour votre aide.
Configuration: Windows / Chrome 84.0.4147.135

6 réponses

yg_be Messages postés 23406 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 25 décembre 2024 Ambassadeur 1 557
24 août 2020 à 09:19
bonjour, as-tu essayé de supprimer le else?
0
europe21 Messages postés 63 Date d'inscription mardi 26 décembre 2017 Statut Membre Dernière intervention 4 février 2024
24 août 2020 à 12:59
Merci de ta réponse, Mais si je le lève j'ai le nom a deux reprise.
0
yg_be Messages postés 23406 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 25 décembre 2024 1 557
24 août 2020 à 13:08
2 c'est mieux que 9, non?
as-tu essayé d'également enlever la ligne entre le else et le endif?
0
europe21 Messages postés 63 Date d'inscription mardi 26 décembre 2017 Statut Membre Dernière intervention 4 février 2024 > yg_be Messages postés 23406 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 25 décembre 2024
24 août 2020 à 13:19
Non j'en ai besoins , en fait l'idée c'est de donner une couleur differente selon si l'adherent a payé sa cotisation ou pas.
en fait c'est la boucle de la variable catadherent qui me pose souci car en fait mon firstName boucle sur le nombre de catégories.
Est il possible dans mon else de lui dire d'arreter la boucle a la premiere entrée?
0
yg_be Messages postés 23406 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 25 décembre 2024 1 557 > europe21 Messages postés 63 Date d'inscription mardi 26 décembre 2017 Statut Membre Dernière intervention 4 février 2024
24 août 2020 à 13:45
tu fais cette boucle uniquement pour ajouter, ou pas,
class="text-center"
?
0
europe21 Messages postés 63 Date d'inscription mardi 26 décembre 2017 Statut Membre Dernière intervention 4 février 2024
24 août 2020 à 14:18
Oui , je vais rajouter une class pour modifier la couleur.
0
yg_be Messages postés 23406 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 25 décembre 2024 1 557
24 août 2020 à 16:21
il me semble alors que tu peux simplement déplacer hors de la boucle le texte qui doit toujours s'afficher, et en ne laissant dans la boucle que le texte variable.
0
europe21 Messages postés 63 Date d'inscription mardi 26 décembre 2017 Statut Membre Dernière intervention 4 février 2024
24 août 2020 à 16:26
C'est le meme texte avec des couleurs differentes.
Si je laisse le texte hors de la boucle il s'affichera tout le temps en noir par exemple et s'ajoutera au meme texte en rouge s'il n'a pas payé sa cotisation.
0
yg_be Messages postés 23406 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 25 décembre 2024 1 557
24 août 2020 à 16:32
il me semble que tu veux afficher soit
<td class="text-center">{{ad.lastName}} {{ad.firstName}}</td>

soit
<td>{{ad.lastName}} {{ad.firstName}}</td>

je me trompe?
ne vois -tu pas qu'une partie du texte doit toujours s'afficher, tandis qu'une autre partie ne s'affichera que dans certains cas?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
europe21 Messages postés 63 Date d'inscription mardi 26 décembre 2017 Statut Membre Dernière intervention 4 février 2024
24 août 2020 à 16:53
Dans tous les cas {{ad.lastName}} {{ad.firstName}} doivent s'afficher. Dans ce cas ils seront dans un cas centré et dans l'autre non.
0
yg_be Messages postés 23406 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 25 décembre 2024 1 557
24 août 2020 à 16:57
tu veux toujours envoyer
<td

parfois tu veux envoyer
 class="text-center"

et ensuite tu veux toujours envoyer
>{{ad.lastName}} {{ad.firstName}}</td>


donc je suggère de sortir de la boucle for les éléments que tu veux toujours envoyer, et de n'y laisser que l'élément que tu veux parfois envoyer.
0
europe21 Messages postés 63 Date d'inscription mardi 26 décembre 2017 Statut Membre Dernière intervention 4 février 2024
24 août 2020 à 17:20
Ok désolé je comprend.
C'a marche je te remercie beaucoup j'étais entrain de péter un cable.:)
0