web-dev-qa-db-fra.com

symfony2 - twig - comment rendre un modèle de brindille depuis un modèle de brindille

J'ai un fichier xxx.html.twig qui montre une page, mais quand je veux rafraîchir la page avec des données différentes et simplement la mettre à jour avec de nouvelles données, j'ai un bouton de sélection et de soumission pour elle . je ne sais pas comment appeler une action dans le contrôleur à laquelle je passe des paramètres de ma branche et appelle de nouvelles données, puis je restitue le même modèle de branche avec de nouveaux paramètres.

Comment je le fais?

17
Alon

Symfony 2.1:

{% render 'YourBundle:YourController:yourAction' with {'var': value} %}

Symfony 2.6+:

{{ render(controller('YourBundle:YourController:yourAction', {'var': value})) }}

Et bien sûr, lisez la documentation.

32
Vitalii Zurian

Voici quelques façons différentes:

{{ render(app.request.baseUrl ~ '/helper/test', {"hostid2": hostid } ) }}

ou

{% include 'MyCoreBundle:Helper:test.html.twig' with {"hostid2": hostid } only %}

ou

{% render controller("MyCoreBundle:Helper:test", {'hostid2': hostid}) %}
40
someuser

Je pense que certaines parties sont dégradées ici . Pour que l'inclusion fonctionne dans la dernière version de Symfony 3.1.10, je l'ai résolu comme ceci:

{% extends 'base.html.twig' %}
{% block body %}
    {{ include('AppBundle:Default:inner_content.html.twig') }}
{% endblock %}

Remarque: include () avec des parenthèses . Toutes les variables sont alors incluses à partir du modèle parent. Si vous souhaitez limiter certaines variables dans le modèle enfant, utilisez uniquement ... (regardez au-dessus).

0