forms - 使用 Symfony2 在 Twig 模板中渲染表单

标签 forms templates view symfony twig

我有一个基本的 Twig 模板,它在页面顶部的 Twig block 中有一个搜索栏表单。稍后我还有另一个名为“内容”的 block ,我的子页面将填写该 block 。目前,我的基本模板如下所示:

{% 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 变量并在每次我想呈现 subview 时传递它吗?我将 Twig 与 Symfony2 结合使用。

谢谢!

最佳答案

Embedded Controller是你需要的。将您的 admin_bar block 放入单独的文件中:

{# 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>

为此模板创建 Controller :

class SearchController extends Controller
{
    public function indexAction()
    {
        // build the search_form

        return $this->render('AcmeAcmeBundle:Search:index.html.twig', array('search_form' => $searchForm));
    }
}

然后将 Controller 嵌入到您的原始模板中:

{% block admin_bar %}
    {% render "AcmeAcmeBundle:search:index" %}
{% endblock %}

{% block content %}
{% endblock %}

关于forms - 使用 Symfony2 在 Twig 模板中渲染表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9384493/

相关文章:

PHP 表单未提交到数据库

c++ - 为基于模板的代码生成更高质量错误消息的工具?

Kohana 3.1 中的模板

MySQL - 在 VIEW 选择上添加 'group by' 规则

javascript - 如何使用 YUI 应用程序框架更改 subview

javascript - 在加载时从 html Javascript 生成服务器 cgi?

javascript - jQuery/AJAX 验证后提交

c++ - 本身就是模板的特化

javascript - 如何在 AngularJs2 中添加动态 formControlName

c++ - 如何制作具有自定义移位值的模板