0

我使用此代码

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

这工作正常

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

现在有什么方法可以像这样在构造函数中传递单个 UserTask 对象

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

这样我就可以使用它为表单生成标签。

可能吗

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

4

1 回答 1

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。

于 2012-08-07T14:36:11.233 回答