Symfony2为每个列表项呈现表单

时间:2014-08-07 12:12:47

标签: php forms symfony

如何使用csrf和symfony方式验证每个列表项的表单?

我有一个Task实体,它具有与OneToMany关系的comments属性。所以我想列出所有任务,并为每个任务包含一个隐藏的评论表。通常我将生成的表单从控制器传递到模板,但是如何在模板中以动态方式创建它们?

{% for task in tasks %}
<taskinfo>
<task comment form>
{% endfor %}

2 个答案:

答案 0 :(得分:0)

也许您需要嵌入一系列表单?如果是,herehere您可以阅读更多内容。

答案 1 :(得分:0)

使用这种方式

解决

控制器

    $forms = array();
    foreach($tasks as $task) {
        $entity = new TaskComment();
        $forms[$task -> getId()] = $this ->createTaskCommentForm($entity, $task -> getId());
    }
   return $this->render('Bundle:blah:index.html.twig', array(
        ....
        'forms' => $forms
    ));

视图中每个任务框附近的评论框:

    ...task info...
    {% for task in tasks %}
        <div class="comment-box">
             {{ form(forms[task.id]) }}
        </div>
    {% endfor %}

P.S。我正在使用可折叠面板来显示/隐藏每项任务。