这是我的POST数据的摘录:
...
lead[contacts][6][firstName]: test
lead[contacts][6][id]: 543961
lead[contacts][6][lastName]: test
...
lead[contacts][7][firstName]: John
lead[contacts][7][id]: 296310
lead[contacts][7][lastName]: Doe
...
lead[contacts][8][firstName]: foo
lead[contacts][8][id]: 296320
lead[contacts][8][lastName]: bar
...
lead[contacts][9][firstName]: foo
lead[contacts][9][id]: 296330
lead[contacts][9][lastName]: bar
...
我在Symfony profiler的Request / POST Parameters部分看到相同的帖子数据。我在这里提供数据作为文本,因为截图将包含许多其他不必要的信息。由于隐私原因,我替换了原始的名字和姓氏值。是的,“foo bar”出现两次。
我的问题是Symfony在处理请求后混合了ID和内容:
$lead = $this->getRepository()->findWithContacts($id);
$form = $this->createForm(LeadType::class, $lead);
$form->handleRequest($request);
来自Symfony profiler的表格/提交数据部分的截图:
正如你所看到的,现在测试的是John Doe的ID 296310.我不知道为什么会这样。在以后保留表单数据时,会导致大量插入和删除。我还观察到处理完表格后数据完全丢失了。
答案 0 :(得分:0)
屏幕截图中的返回值为LeadContact
,但您似乎正在尝试获取Lead
。无论如何,您应该传递您尝试呼叫的任何存储库的类名。
$yourVar = $this->getRepository(YourClass::class)->findMethod($id);
我猜你想要Lead而不是LeadContact,如:
$lead = $this->getRepository(Lead::class)->findWithContacts($id);