Comment puis-je accéder à un membre dans Twig déterminé par une variable?
Je veux faire le code suivant:
{% set rooms = [] %}
{% set opts = {
'hasStudio': 'Studio',
'has1Bed': '1 BR',
'has2Bed': '2 BR',
'has3Bed': '3 BR',
'has4BedPlus': '4 BR+'
}
%}
{% for key, val in opts %}
{% if bldg.{key} is none %} {# PROBLEM HERE.. HOW TO FIND THIS MEMBER!? #}
{{ val }}?
{% elseif bldg.{key} %}
{{ val }}
{% else %}
No {{ val }}
{% endif %}
{% endfor %}
Comment dois-je appeler les propriétés de membre de bldg qui sont nommés par la valeur de key
? Je veux récupérer les valeurs de
bldg.hasStudio
bldg.has1Bed
bldg.has2Bed
etc....
OriginalL'auteur Robert Martin | 2011-09-11
Vous devez vous connecter pour publier un commentaire.
Réponse courte: non directement /en mode natif possible ... encore.
Apparemment, ils ont ajouté une nouvelle fonction à Twig 1.2 appelé attribut() qui répond exactement à ce besoin.
Mais comme jusqu'à ce jour, vous pouvez seulement de téléchargement de Rameau 1.1.2; de sorte 1.2 est probablement pas livré avec SF2 - bien que je ne peux pas trouver un numéro de version. (1.2 est maintenant disponible!)
J'ai essayé de résoudre qu'avec des trucs différents, mais en vain; 1.2 la corriger.
Mais ce que vous pouvez faire si est d'ajouter une méthode de classe qui prend soin de tout ce dont vous avez besoin. quelque chose comme ça:
php:
twig:
sera de sortie '1'
attribut caractéristique dans twig 1.2 est génial
OriginalL'auteur Raffael
J'ai écrit ma propre extension twig pour ce faire. Vous pouvez l'utiliser de la manière que je voulais:
Est ici:
Pour l'utiliser dans mon programme, j'ai dû ajouter quelques lignes à mon injection de dépendance:
OriginalL'auteur Robert Martin
Utiliser des crochets syntaxe:
bldg[key]
OriginalL'auteur Crozin