web-dev-qa-db-ja.com

symfony2-twig-twigテンプレートをtwigテンプレートからレンダリングする方法

ページを表示するxxx.html.twigファイルがありますが、異なるデータでページを更新し、新しいデータで更新したい場合は、選択と送信ボタンがあります。問題は、twigからパラメーターを渡し、新しいデータを呼び出すコントローラーでアクションを呼び出す方法がわからず、同じtwigをレンダリングすることです新しいパラメータを使用してテンプレートを再度作成します。

どうすればいいですか?

17
Alon

Symfony 2.1:

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

Symfony 2.6+:

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

そして、もちろん、 documentation。 を読んでください

33
Vitalii Zurian

以下にいくつかの異なる方法を示します。

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

または

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

または

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

ここでいくつかの部分が説明されていると思います。最新のSymfony 3.1.10でインクルードを機能させるために、次のように解決しました。

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

注:括弧付きのinclude()。次に、すべての変数が親テンプレートから含まれます。子テンプレートの一部の変数を制限する場合は、...のみで使用します(参照)