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?
{% render 'YourBundle:YourController:yourAction' with {'var': value} %}
{{ render(controller('YourBundle:YourController:yourAction', {'var': value})) }}
Et bien sûr, lisez la documentation.
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}) %}
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).