Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/symfony/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 使用数据库中的数据预填充Symfony表单文本字段_Php_Symfony - Fatal编程技术网

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

Php 使用数据库中的数据预填充Symfony表单文本字段,php,symfony,Php,Symfony,如何使用数据库中的数据预填充symfony中的文本字段。我在主机表中有一个名为hostFee的字段,当我创建表单时,我希望这些数据预先填充这个文本字段 我正在为new BookingSpecsType()创建表单 这是我的表单生成器元素 $builder->add('hostFee', 'text', array( 'required'=>false, 'error_bubbling'=>true, 'label'=>'Do

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

我正在为new 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'
        )
    ));

谢谢

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

提供了许多示例

当您在控制器操作中使用
$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());