我正在寻找指导如何预先填充从现有对象获取的数据的表格。我想它应该使用方法setData,我期待一些简单的事情
$form->setData($existingObject)
但没有成功。
为了更好的解释,我们有一个简单的例子。
我有用户输入其个人数据的表格。通过调用form.factory,
$form = $this->get('form.factory')->create(new personType());
我有表单类“personType”,这个表单类定义了名为“person”的data_class对象。用户提交表单,数据保存在对象人中,此对象保存在会话中。我需要选项重新打开表单并填写保存在会话中存储的对象中的数据。
答案 0 :(得分:0)
在控制器中,您需要创建/查找对象,然后将其传递给createForm
$ task = new Task();
$ task-> setTask('写博客文章');
$ task-> setDueDate(new \ DateTime('tomorrow'));$ form = $ this-> createForm(new TaskType(),$ task);
http://symfony.com/doc/master/book/forms.html#creating-form-classes
在你的例子中,试试
$ person = ...;
$ form = $ this-> get('form.factory') - > create(new personType(),$ person);