如何在Symfony2中使用URL参数自动填充表单

时间:2013-09-09 06:10:30

标签: forms symfony symfony-2.3 formbuilder

我在Symfony 2.3中有一个视图,显示了员工喜欢和不喜欢的完整列表。我试图在此视图的顶部创建一个简单的表单,按名称按员工筛选列表。

我目前使用常规HTML和一些TWIG条件语句在twig模板中创建表单,以检查employee_name GET参数是否与其中一个员工匹配。这个解决方案有效,但并不理想。

<form action="{{ path('report') }}" method="GET">
    <select id='employee_name' name='employee_name'>
         <option value='John' {% if app.request.get("employee_name") == 'John' %} selected {% endif %}>John</option>
         <option value='Aaron' {% if app.request.get("employee_name") == 'Aaron' %} selected {% endif %}>Aaron</option>
         <option value='Sam' {% if app.request.get("employee_name") == 'Sam' %} selected {% endif %}>Sam</option>
    </select>
    <button type="submit">Submit</button>
</form>

我的问题是,有没有办法使用表单生成器编写上面的表单,并在提交时仍然自动填写字段?我希望我的过滤器表单可扩展且可重用。也许最好只使用Twig Include?建议欢迎。

1 个答案:

答案 0 :(得分:0)

不确定。只需使用表单构建器创建表单并在Twig中呈现它。由于您使用的是GET方法,并且正在调用$form->handleRequest($request),因此表单将根据GET参数选择正确的值。