Bonjour,
J'utilise le framework Symfony 2.2.
J'ai un problème au niveau du moteur Twig et je pense à cause de l'imbrication de deux boucles for.
En effet il semble que je perds l'ensemble du contexte dans la deuxième boucle for
Mon code qui fonctionne :
Dans ce code j'affiche en debug le retour de la propriété functPoint.getLabel() et cela fonctionne bien
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30 <ul id="main-nav" class="open-active"> <li class="active"> <a href="{{ app.request.getBaseURL() }}/accueil"> <-- fonctionne bien <i class="fa fa-dashboard"></i> Tableau de bord </a> </li> {% for obj in uiPage.getObj("userAuthorizations") %} <li class="dropdown"> <a href="javascript:;"> <i class="fa fa-user"></i> {{ obj.getProfile().getLabel() }} <span class="caret"></span> </a> {% if (obj.hasFunctPoints()) %} <ul class="sub-nav"> {% for functPoint in obj.getFunctPoints() %} <li> <a href=""> <i class="fa fa-angle-right"></i> </a> </li> <pre>{% debug functPoint.getLabel()%}</pre> <-- fonctionne bien {% endfor %} </ul> {% endif %} </li> {% endfor %} </ul>
Par contre si j'essaie d'afficher la valeur de ma propriété {{ functPoint.getLabel() }} cela génère une erreur...
L'erreur n'est pas tellement parlante...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31 <ul id="main-nav" class="open-active"> <li class="active"> <a href="{{ app.request.getBaseURL() }}/accueil"> <-- fonctionne bien <i class="fa fa-dashboard"></i> Tableau de bord </a> </li> {% for obj in uiPage.getObj("userAuthorizations") %} <li class="dropdown"> <a href="javascript:;"> <i class="fa fa-user"></i> {{ obj.getProfile().getLabel() }} <span class="caret"></span> </a> {% if (obj.hasFunctPoints()) %} <ul class="sub-nav"> {% for functPoint in obj.getFunctPoints() %} <li> <a href=""> <i class="fa fa-angle-right"></i> {{ functPoint.getLabel() }} <-- génère une erreur </a> </li> <pre>{% debug functPoint.getLabel()%}</pre> <-- fonctionne bien {% endfor %} </ul> {% endif %} </li> {% endfor %} </ul>
Il en est de même si dans mon deuxième for j'essaie d'afficher {{ app.request.getBaseURL() }} ce qui fonctionne très bien tout en haut du code en dehors des deux boucles for imbriquéesWhoops, looks like something went wrong.
1/1 FatalErrorException: Error: Maximum function nesting level of '64' reached, aborting! in C:\Program Files\xampp\htdocs\itmv2\vendor\twig\twig\lib\Twig\Node\Expression\GetAttr.php line 21
Si j'affiche cette même variable, app.request.getBaseURL(), dans le premier for cela fonctionne...
C'est embêtant si je découvre que Twig ne permet pas de manipuler des objets dans un for imbriqué dans un autre for...
Une idée ?
Par avance merci pour votre aide.
Partager