Problème de condition dans twig
Résolu
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.
mon controller:
EDIT : Correction des balises de code ( Ajout du LANGAGE .... ENCORE !!! )
ma table:

le resultat:

merci pour votre aide.
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
-
Contributeur Ambassadeurbonjour, as-tu essayé de supprimer le else?
-
Merci de ta réponse, Mais si je le lève j'ai le nom a deux reprise.
-
-
@yg_beNon 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? -
Contributeur Ambassadeur@europe21tu fais cette boucle uniquement pour ajouter, ou pas,
class="text-center"
?
-
-
Oui , je vais rajouter une class pour modifier la couleur.
-
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.-
Contributeur Ambassadeuril 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?
-
-
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.
-
Contributeur Ambassadeurtu veux toujours envoyer
<td
parfois tu veux envoyerclass="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.
-
-
Ok désolé je comprend.
C'a marche je te remercie beaucoup j'étais entrain de péter un cable.:)