我的问题很简单,但我找不到任何帮助... 我有小实体,有OneToOne关系
任务
ID
命名
user_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可以实现这一点吗?使用实体集合?
感谢。
本杰明
答案 0 :(得分:0)
您需要为每个对象创建一个表单视图,然后将其存储在一个变量中以便在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
定义宏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 ) }}
宏函数在这里不是必需的:你可以直接在你的树枝中调用你的循环,但这是订购你的代码的好方法,特别是当你想在树枝上制作一些递归代码时:)