Php 页面上显示的每个实体的表单

Php 页面上显示的每个实体的表单,php,forms,symfony,Php,Forms,Symfony,我的问题很简单,但我找不到任何帮助。。。 我必须要有一个小小的实体,只有一个关系 任务 id 名称 用户id(FK) 用户 id 名字 在我的页面上,我显示了“Task”表中存在的所有任务(带有一个经典的findAll()函数),我想在每个任务旁边显示一个简短的表单,让用户填写自己的姓名并保存它 诸如此类: Task #1 -- [input text for the username] [submit button] Task #2 -- [input text for the usernam

我的问题很简单,但我找不到任何帮助。。。 我必须要有一个小小的实体,只有一个关系

任务
id
名称
用户id(FK)

用户
id
名字

在我的页面上,我显示了“Task”表中存在的所有任务(带有一个经典的findAll()函数),我想在每个任务旁边显示一个简短的表单,让用户填写自己的姓名并保存它

诸如此类:

Task #1 -- [input text for the username] [submit button]
Task #2 -- [input text for the username] [submit button]
Task #3 -- [input text for the username] [submit button]
Task #4 -- [input text for the username] [submit button]
...
Symfony2是否可能实现这一点?如何实现?使用实体集合

谢谢。

Benjamin

您需要为每个对象创建一个表单视图,然后将其存储在一个变量中以显示在twig中

   // in your php
   $forms = array();

   for ( $tasks as $task )
   {
      $form = $this->createForm( new formType() , $task );

      $forms[] = $form->createView();
   }

   return $this->render ( "path.to.html.twig", array ( "forms" => $forms ) );


   // in your twig 
定义宏

{%macro-drawForms(forms)%}
{表格%中的表格为%}
{{form_errors(form)}}
{{form_start(form)}}
提交/保存
{{form_end(form)}}
{%endfor%}
{%endmacro%}
//在html中调用宏。此处导入表示宏位于同一分支中。否则,必须定义宏位于哪个细枝中
{%import\u self作为宏%}
{{forms.drawForms(forms)}
宏函数在这里不是强制性的:您可以直接在细枝中调用loop,但这是对代码排序的好方法,特别是当您想在细枝中生成一些递归代码时:)

{% macro drawForms(forms) %}
    {% for form in forms %}
          {{ form_errors(form) }}
          {{ form_start(form) }}

          <button type="submit">Submit / Save </button>
          {{ form_end(form) }}
    {% endfor %}
{% endmacro %}

 // call of your macro in your html . Import here state that our macro is in the same twig. otherwise you have to define in which twig the macro is located
 {% import _self as macro %}
 {{ forms.drawForms( forms ) }}