0

我正在寻找如何使用从现有对象中获取的数据预填充表单的指导。我想它应该使用方法 setData,我期待一些简单的东西, $form->setData($existingObject)但没有成功。

为了更好地解释,让我们举一个简单的例子。
我有用户输入他的个人数据的表格。通过调用 form.factory 在控制器中创建表单,

$form = $this->get('form.factory')->create(new personType());

我有表单类“personType”,这个表单类定义了名为“person”的 data_class 对象。用户提交表单,数据保存在对象 person 中,该对象保存在 session 中。我需要选择重新打开表单并填写保存在会话中存储的对象中的数据。

4

1 回答 1

0

在您的控制器中,您需要创建/查找您的对象,然后将其传递给您的 createForm

$task = 新任务();
$task->setTask('写一篇博文');
$task->setDueDate(new \DateTime('明天'));

$form = $this->createForm(new TaskType(), $task);

http://symfony.com/doc/master/book/forms.html#creating-form-classes

在你的例子中,尝试

$人 = ...;
$form = $this->get('form.factory')->create(new personType(), $person);

于 2013-02-02T13:07:45.113 回答