如何使用symfony2上的现有数据显示填充表单

时间:2014-05-20 07:58:14

标签: php symfony twig

我正在尝试使用数据库中的现有数据呈现symfony2填充表单。 我想要的是更新数据。 为此,我想在表单上显示当前数据。

目前我正在获取数据并填写表格,但我认为这不是最佳方式。

<form>
{% for value in values %}
    <input type="text" placeholder="{{ value.name }}">
    <input type="email" placeholder="{{ value.email }}">
    ...
{% endfor %}
</form>

我知道如何使用createFormBuilder和AbstractTypes创建表单,但不知道如何使用实体中的现有数据显示或显示此表单。

1 个答案:

答案 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的实体还是具有任意数据的数组。希望这会有所帮助。