如何在Symfony 2中传递表单集合中的当前引用对象?

时间:2012-08-07 01:44:16

标签: php forms symfony

我使用此代码

$builder->add('userTasks','collection',array('type' => new UserTaskType()));

这很好用

userTasks将是一个不同的userTask对象的集合,这些对象将依次创建表单。

现在有什么方法可以像这样

在构造函数中传递单个UserTask对象
$builder->add('userTasks','collection',array('type' => new UserTaskType($userTask)));

这样我就可以用它来为表单生成Label。

是否可能

如果我使用$user->UseTasks那么这将是所有任务的集合,但我只想要正在创建表单的对象

1 个答案:

答案 0 :(得分:1)

如果我正确理解了这个问题,你想根据表格绑定的实际数据对象来调整表单吗?这是那些简单的声音要求之一,实际上有点涉及。

您需要使用表单事件系统: http://symfony.com/doc/master/cookbook/form/dynamic_form_generation.html

一旦你完成了它,就没那么糟了。

===

回答第一条评论:

public function preSetData(DataEvent $event)
{
    $data = $event->getData();
    $form = $event->getForm();

$ data将是您的对象,在本例中为$ userTask。