Php 使用数据库中的数据预填充Symfony表单文本字段
如何使用数据库中的数据预填充symfony中的文本字段。我在主机表中有一个名为hostFee的字段,当我创建表单时,我希望这些数据预先填充这个文本字段 我正在为new BookingSpecsType()创建表单 这是我的表单生成器元素Php 使用数据库中的数据预填充Symfony表单文本字段,php,symfony,Php,Symfony,如何使用数据库中的数据预填充symfony中的文本字段。我在主机表中有一个名为hostFee的字段,当我创建表单时,我希望这些数据预先填充这个文本字段 我正在为new BookingSpecsType()创建表单 这是我的表单生成器元素 $builder->add('hostFee', 'text', array( 'required'=>false, 'error_bubbling'=>true, 'label'=>'Do
$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'
)
));
谢谢 您不需要手动定义数据。如果您只是从水合实体初始化表单,那么所有数据都将初始化到所有字段。提供了许多示例 当您在控制器操作中使用
$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())
);
}
您可以看到为crud命令生成的te代码以及它的工作原理。我想你想编辑一个实体?文本输入有一个值属性,而不是数据。表单系统将根据创建表单时传入的数据对象自动设置value属性。文档中有一些如何开始的示例。这对我来说很有用:$form->get('hostFee')->setData($host->getHostFee());