[英]Rendering a Form in a Twig Template with Symfony2
我有一個基本的Twig模板,在Twig塊的頁面頂部有一個搜索欄表單。 我后來在另一個塊上命名為“內容”,我的子頁面填寫完整。 目前,我的基本模板如下所示:
{% block admin_bar %}
<div id="search">
<form action="{{ path('search') }}" method="post" {{ form_enctype(search_form) }}>
{{ form_widget(search_form.term) }}
{{ form_widget(search_form.type) }}
{{ form_widget(search_form.pool) }}
{{ form_widget(search_form._token) }}
<input type="submit" value="Search" />
</form>
</div>
{% endblock %}
{% block content %}
{% endblock %}
但是,在嘗試渲染子模板時,我需要傳遞search_form
變量。 無論如何(沒有自己寫出HTML標簽)我可以避免創建這個search_form
變量並在每次想要渲染子視圖時傳遞它? 我正在將Twig與Symfony2結合使用。
謝謝!
嵌入式控制器是您所需要的。 將您的admin_bar塊放入單獨的文件中:
{# src/Acme/AcmeBundle/Resources/views/Search/index.html.twig #}
<div id="search">
<form action="{{ path('search') }}" method="post" {{ form_enctype(search_form) }}>
{{ form_widget(search_form.term) }}
{{ form_widget(search_form.type) }}
{{ form_widget(search_form.pool) }}
{{ form_widget(search_form._token) }}
<input type="submit" value="Search" />
</form>
</div>
為此模板創建控制器:
class SearchController extends Controller
{
public function indexAction()
{
// build the search_form
return $this->render('AcmeAcmeBundle:Search:index.html.twig', array('search_form' => $searchForm));
}
}
然后將控制器嵌入到您的原始模板中:
{% block admin_bar %}
{% render "AcmeAcmeBundle:search:index" %}
{% endblock %}
{% block content %}
{% endblock %}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.