Bonjour,

Voila je rencontre un petit problème avec mon code.

Tout d'abord j'ai un tableau "resultat" que je récupère via mon controller dans mon fichier html.twig ( donc pas de problème à ce niveau là) ensuite J'ai une autre variable que j'ai créée dans mon fichier en twig en faisant "{% set maVar = "C001 %}" . Ensuite je fais le teste ci dessous

{% set maVar = "C001" %}

{% if maVar in resultat.libelle %}
    <h2> identifiant : {{resultat.libelle}} - Indice : {{maVar}}</h2>
{% endif %}

J'arrive à afficher la valeur de "maVar" dans la balise html '<h2>'
si j'enlève le if, mais quand je met le 'if' cela
m'afficher l'erreur
"maVar does not exist"

et en changeant le code par

{% set maVar = "C001" %}

{% if {{maVar}} in resultat.libelle %}
    <h2> identifiant : {{resultat.libelle}} - Indice : {{maVar}}</h2>
{% endif %}

J'ai encore l'erreur suivant :
"A hash key must be a quoted string, a number, a name, or an expression enclosed in parentheses (unexpected token "puncuation" of value "{".

Merci d'avance de votre aide

3 réponses


Bonjour.
Si tu as compris un minimum la syntaxe de Twig, comment peux-tu être étonné d'avoir une erreur en affichant une variable dans une condition ?
Car quand tu fais if {{maVar}}, c'est comme si tu faisais :

if echo $maVar

Tu ne crois pas qu'il y a un problème là ?
Par contre, ce serait bien que tu édites le contenu de ton sujet, car il semble bien y manquer des mots.

Bonjour,
J'ai essayé de faire

{% if maVar %}

mais il dit que le variable maVar n'existe pas.
Peut-être je ne m'y connais pas assez en twig, mais est-il possible même de tester une variable qu'on a declaré via en faisant "set maVar" ?

Bonjour,

je pense qu'en faisant :

{% if maVar %}

tu testes si ta variable est "vrai", donc elle doit forcément exister.
Essaie avec :

{% if maVar is defined %}

Voir la documentation twig

++