我试图使用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”值。
答案 0 :(得分:0)
您在此处保存$player
:
$this->PlayerRepository->store($player);
但是您来自表单的实际玩家数据在$data
中,并且该$data
应该存储:
$this->PlayerRepository->store($data);
答案 1 :(得分:0)
好的,看来我发现了错误。
我没有为构建视图的同一控制器定义POST路由。
对此表示抱歉:)