Symfony形式:使用构造函数将对象持久化为Databese

时间:2018-10-06 13:11:37

标签: php forms symfony symfony-forms

我试图使用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”值。

2 个答案:

答案 0 :(得分:0)

您在此处保存$player

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

但是您来自表单的实际玩家数据在$data中,并且该$data应该存储:

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

答案 1 :(得分:0)

好的,看来我发现了错误。

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

对此表示抱歉:)