Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/254.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_Forms_Symfony_Symfony Forms - Fatal编程技术网

Php Symfony表单:将具有构造函数的对象分配到数据库

Php Symfony表单:将具有构造函数的对象分配到数据库,php,forms,symfony,symfony-forms,Php,Forms,Symfony,Symfony Forms,我试图使用symfony表单将实体的对象持久化到数据库中。实体有一个构造函数,因此我提供了对象伪数据,但我不能用表单更改此数据。有没有人能解决如何创建需要构造函数的对象的问题 public function new(Request $request) { $player = new Player("Dummy",0); $form = $this->createFormBuilder($player) ->a

我试图使用symfony表单将实体的对象持久化到数据库中。实体有一个构造函数,因此我提供了对象伪数据,但我不能用表单更改此数据。有没有人能解决如何创建需要构造函数的对象的问题

 public function new(Request $request)
    {

        $player = new Player("Dummy",0);




        $form = $this->createFormBuilder($player)
            ->add('name', TextType::class)
            ->add('points', IntegerType::class)
            ->add('save', SubmitType::class, array('label' => 'Create Player'))
            ->getForm();

        $form->handleRequest($request);

        $data = $form->getData();
        $name = $data->getName();
       error_log($name);




        $this->PlayerRepository->store($player);



        return $this->render('default/new.html.twig', array(
            'form' => $form->createView(),
        ));
    }

无论我在表单中键入什么,$name始终具有值“Dummy”。

您可以在此处保存
$player

$this->PlayerRepository->store($player);
但您的表单中的实际玩家数据位于
$data
中,此
$data
应存储:

$this->PlayerRepository->store($data);

好吧,看来我发现了错误

我没有为构建视图的同一控制器定义POST路由


很抱歉:)

事实上,由于Symfony表单的工作方式,$player将包含任何更新的信息。在这种情况下,不需要使用getData。原来的海报真的只需要遵循文档中的示例。非常感谢您的回复。但是数据包含的值总是“Dummy”和0。因此,似乎存在一个错误,即表单中输入的数据实际上没有提交。因此,form->getData没有提供我需要的数据。