Alon
Alon

Reputation: 3906

symfony2 - twig - how to render a twig template from inside a twig template

I have a xxx.html.twig file which shows a page, but when I want to refresh the page with different data and just update it with new data, I have a select and a submit button for it. The thing is that I don't know how do I call an action in the controller which I pass parameters to from my twig and call for new data and then I render the same twig template again with new parameters.

How do I do so?

Upvotes: 19

Views: 52149

Answers (3)

I think some parts are depricated here. To make the include work in latest Symfony 3.1.10, I solved it like this:

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

Note: include() with parentheses. Then all the variables are included from the parent template. If you like to restrict some variables in the child template, you use with ... only (look over)

Upvotes: 1

Vitalii Zurian
Vitalii Zurian

Reputation: 17986

Symfony 2.1:

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

Symfony 2.6+:

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

And, of course, read the documentation.

Upvotes: 33

someuser
someuser

Reputation: 2309

Here are a few different ways:

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

or

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

or

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

Upvotes: 41

Related Questions