我的问题很简单,但我找不到任何帮助。。。我有小实体,与一对一的关系
任务
id
名称
user_id(FK)
用户
id
名称
在我的页面上,我显示"任务"表上现有的所有任务(使用经典的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
您需要为每个对象创建一个表单视图,然后将其存储在一个变量中以显示在trick中。
// 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
定义宏http://twig.sensiolabs.org/doc/tags/macro.html
{% 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 ) }}
宏函数在这里不是强制性的:你可以直接在你的小树枝中调用循环,但这是排序代码的好方法,特别是当你想在小树枝中生成一些递归代码时:)