我正在尝试使用数据库中的现有数据呈现symfony2填充表单。 我想要的是更新数据。 为此,我想在表单上显示当前数据。
目前我正在获取数据并填写表格,但我认为这不是最佳方式。
<form>
{% for value in values %}
<input type="text" placeholder="{{ value.name }}">
<input type="email" placeholder="{{ value.email }}">
...
{% endfor %}
</form>
我知道如何使用createFormBuilder和AbstractTypes创建表单,但不知道如何使用实体中的现有数据显示或显示此表单。
答案 0 :(得分:3)
为什么要手工制作表格?你应该只有{{ form(form) }}
。这就是为什么每个人都在问你在哪里创建它,因为它与你填充它的位置相同。从表格手册:
public function newAction(Request $request)
{
// you can use a new instance of an entity or
// get existing data from your database
// e.g. $task = $em->getRepository('Bundle:Task')->find(1);
// and this data will fill your form.
$task = new Task();
$task->setTask('Write a blog post');
$task->setDueDate(new \DateTime('tomorrow'));
$form = $this->createFormBuilder($task)
->add('task', 'text')
->add('dueDate', 'date')
->add('save', 'submit')
->getForm();
return $this->render('AcmeTaskBundle:Default:new.html.twig', array(
'form' => $form->createView(),
));
}
查看对createFormBuilder
的来电?您将数据输入表单的位置。传递的对象/数组中的数据将用作表单的填充数据。现在,由您来提供所需数据,无论它是来自db的实体还是具有任意数据的数组。希望这会有所帮助。