Est-il possible de passer des variables dans un modèle inclus twig, où le nom du modèle est une variable en soi?
{% include('MyMainBundle:MyEntity:' ~ entity.templateName) %}
fonctionne, mais quand j'essaie de passer également une variable dans ce modèle, twig jette une erreur de syntaxe.
{% include('MyMainBundle:MyEntity:' ~ entity.templateName, {'name' : myName} ) %}
Je vois ce que je faisais mal. J'avais combiné deux versions différentes de include, l'une utilisant {{et l'autre utilisant {% en raison de symfony et twig docs montrant différentes façons d'inclure des modèles. C'était aussi simple que de supprimer la parenthèse à partir de mon code initial et en insérant un avec avant de définir l'argument.
Vous pouvez inclure un modèle comme celui-ci par http://symfony.com/doc/current/book/templating.html#including-other-templates
{{ include('AcmeArticleBundle:Article:articleDetails.html.twig', {'article': article}) }}
Ou comme ceci par http://twig.sensiolabs.org/doc/tags/include.html
{% include 'template.html' with {'foo': 'bar'} %}
Pour un nom de modèle en tant que variable, j'ai dû utiliser ce format:
{% include 'AcmeCalendarBundle:Default:cal_event_' ~ day.item.type ~ '.html.twig' with {'item': day.item} %}
En utilisant
{{ include 'AcmeCalendarBundle:Default:cal_event_' ~ day.item.type ~ '.html.twig', {'item': day.item} }}
n'a pas marché.