Comment puis-je accéder au référentiel de fonctions template twig dans symfony2
J'ai le class categroies
et class Products
.
Dans mon référentiel, j'ai de la fonction
getProducts($categoryid,$location)
J'ai besoin de boucle dans le template twig comme ce
{% for category in categories %}
--{{ category.name }}--
{% for product in getProducts(category.id,location) %}
--{{ product.name }}--
{% endfor %}
{% endfor %}
ou est-il un meilleur moyen pour que
Avez-vous essayé {% pour le point du produit.les éléments de %} ?
Je pense que vous devriez créer une extension Twig. Jetez un oeil à ce sujet
Je pense que vous devriez créer une extension Twig. Jetez un oeil à ce sujet
OriginalL'auteur user825904 | 2012-08-01
Vous devez vous connecter pour publier un commentaire.
Vous ne devriez pas. C'est une logique d'entreprise, qui ne doit pas apparaître dans les modèles. Une solution consiste à créer une nouvelle action au sein d'un contrôleur et de votre modèle d'appel
product[category][products]
de contrôleur et de l'envoyer ensuite le tableau dans le modèleOu vous créer un OneToMany-Relation entre la catégorie et le produit de l'entité; -)
for product in category.products
. Oui, il existe plusieurs solutions, mais l'appel de l'entité référentiel n'est pas l'un d'eux.J'ai déjà le
onetomany
relation mais le problème est de savoir comment appliquer le filtre de localisation , il montre tous les produits si je fais çaBon point. Vous pouvez essayer un Filtre 🙂 Devrait ressembler à
for product in products|products_by_location(location)
ou quelque chose comme ça. Vous pouvez trouver des informations sur la façon de les mettre en œuvre très simple lorsqu'usin s2 cet article et en manuel officiel "Comment écrire une Extension Twig personnalisée".IIRC, rendu un contrôleur peut avoir un impact négatif sur les performances. Pouvez-vous confirmer qu'il ne sera pas plus lent que de passer le référentiel pour le template Twig?
OriginalL'auteur KingCrunch
C'est une très vieille question, mais je manque vraiment une solution simple comme celui-ci.
Il est possible de passer à l'opération objet de rameau et d'appeler les pensions de méthodes publiques de twig comme suit:
Dans votre contrôleur
Et puis dans votre template twig :
Je dis que c'est possible, beaucoup diront que les modèles ne devraient afficher des données et de laisser les contrôleurs de recueillir les données. Personnellement, je ne me dérange pas de laisser mes modèles à obtenir leurs données eux-mêmes.
OriginalL'auteur 10us
Je soupçonne que tous vous avez vraiment besoin est une jointure gauche à l'aide d'une expression. Quelque chose comme:
Qui vous donnera toutes les catégories avec leurs produits respectifs pour un lieu donné.
OriginalL'auteur Cerad
La solution est dans l'autre sens aussi comment c'est fait maintenant. La Catégorie entité doit avoir un un-à-plusieurs. Jetez un oeil à http://symfony.com/doc/2.0/book/doctrine.html#entity-relationships-associations
La catégorie de l'Entité doit alors avoir une EntityCollection attribut appelé "produits". Dans votre modèle, vous pouvez résoudre cela de la manière suivante:
OriginalL'auteur Rvanlaak