Symfony2 - Comment accéder à la dynamique des noms de variables dans twig
J'ai quelques variables dans twig comme
placeholder1
placeholder2
placeholderx
De les appeler, je suis une boucle dans le tableau d'objets "factures"
{% for invoices as invoice %}
need to display here the placeholder followed by the invoice id number
{{ placeholedr1 }}
Une idée? Merci.
où avez-vous définir l'espace réservé 1 - x? Sont-elles mondial accessible à tous facture a eu son propre espace réservé?
Je suis de les définir dans le contrôleur et les passer au template twig.
Pouvez-vous me montrer le code où vous êtes à la définition et à les dépasser? Alors je devrais être en mesure de vous aider 🙂
Pourriez-vous définissez pas de créer un éventail de marques et de les appeler comme
Merci à vous tous, mais comme un workarround, j'ai créé une nouvelle méthode dans ma Facture entité où je suis de la configuration de l'espace Réservé.
Je suis de les définir dans le contrôleur et les passer au template twig.
Pouvez-vous me montrer le code où vous êtes à la définition et à les dépasser? Alors je devrais être en mesure de vous aider 🙂
Pourriez-vous définissez pas de créer un éventail de marques et de les appeler comme
{{ placeholder[invoice.id] }}
, ou, alternativement, de générer de l'espace réservé dans un service, puis d'appeler dans un TwigExtensions à l'aide de votre facture ou de votre facture.id?Merci à vous tous, mais comme un workarround, j'ai créé une nouvelle méthode dans ma Facture entité où je suis de la configuration de l'espace Réservé.
OriginalL'auteur Miloš | 2014-07-11
Vous devez vous connecter pour publier un commentaire.
J'ai juste eu le même problème - et à l'aide de cette première réponse, et après quelques recherches supplémentaires trouvé le
{{ attribute(_context, 'placeholder'~invoice.id) }}
devrait fonctionner (_context
étant le contexte global de l'objet contenant tous les objets par leur nom)OriginalL'auteur Mathieu Jamot
Je suppose que vous pourriez utiliser le Rameau
attribute
fonction.http://twig.sensiolabs.org/doc/functions/attribute.html
Ce travail? {{ attribut(app, 'placeholder'~facture.id) }}
Non, il me dit que la variable globale placeholdersxx n'existe pas.
OriginalL'auteur Einenlum
Au lieu d'utiliser le
attribut
function, vous pouvez accéder aux valeurs de la_context
tableau avec l'ordinaire support de la notation ainsi:Je serais personnellement utiliser celui-ci comme il est plus concis et à mon avis plus clair.
Si le option environnement
strict_variables
est fixé àtrue
, vous devez également utiliser ledefault
filtre:Sinon vous obtiendrez un
Twig_Error_Runtime
exception si la variable n'existe pas. Par exemple, si vous avez des variablesfoo
etbar
mais essayez de sortie de la variablebaz
(qui n'existe pas), vous obtenez ce que l'exception avec le messageKey "baz" for array with keys "foo, bar" does not exist
.Plus verbeux pour vérifier l'existence d'une variable est l'utilisation de la
défini
de test:Avec le
default
filtre vous pouvez également fournir une valeur par défaut, par exemplenull
ou une chaîne de caractères:Si vous omettez la valeur par défaut (c'est à dire que vous utilisez
|default
au lieu de|default(somevalue)
), la valeur par défaut est une chaîne vide.strict_variables
estfalse
par défaut, mais je préfère régler àtrue
pour éviter les problèmes causés par exemple par des fautes de frappe.OriginalL'auteur martias
Ma solution pour ce problème:
Créer la matrice de l'espace réservé(x). Comme:
Envoyer à la fois des variables pour la vue et à votre modèle d'appel:
Cette impression de "B".
J'espère que cela vous aidera.
OriginalL'auteur Bruno Rigolon
J'ai trouvé la solution:
OriginalL'auteur user1409904