使用数据库中的数据预填充Symfony表单文本字段

时间:2015-07-18 23:42:02

标签: php symfony

如何使用数据库中的数据预填充symfony中的文本字段。我在主机表中有一个名为hostFee的字段,当我创建表单时,我希望该数据预先填充此文本字段。

我正在为新的BookingSpecsType()...

创建一个表单

这是我的表单构建器元素。

$builder->add('hostFee', 'text', array(
        'required'=>false,
        'error_bubbling'=>true,
        'label'=>'Do you charge a hosting fee?',
        'data' => '??????? (How do I fill this text field dynamically with the Host table hostFee column data) ?????',
        'attr'=>array(
            'placeholder'=>'If yes, enter dollar amount $0.00',
            'class'=>'form-control'
        )
    ));

感谢。

2 个答案:

答案 0 :(得分:2)

documentation提供了很多例子。

在Controller操作中使用$this->createForm时,第二个参数允许您使用对象水合表单。

例如:

public function editAction()
{
        $user = $this->getDoctrine()->getRepository('User')->find(1); // YOUR OBJECT RETRIEVED FROM THE DB FOR EXAMPLE
        $form = $this->createForm(new EditType(), $user, array(
            'action' => $this->generateUrl('account_edit'),
        ));

        return $this->render(
            'AcmeAccountBundle:Account:edit.html.twig',
            array('form' => $form->createView())
        );
}

答案 1 :(得分:1)

您无需手动定义数据。如果您只是从水合实体初始化表单,那么所有数据都会初始化到所有字段中。