[英]Symfony 3.2 forms: IDs and entity values are mixed up after handle request
這是我的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探查器的“請求/ POST參數”部分中看到了相同的帖子數據。 我在這里以文本形式提供數據,因為屏幕截圖會包含許多其他不必要的信息。 由於隱私原因,我替換了原始的名字和姓氏值。 是的,“ foo bar”出現兩次。
我的問題是,Symfony在處理請求后會混合ID和內容:
$lead = $this->getRepository()->findWithContacts($id);
$form = $this->createForm(LeadType::class, $lead);
$form->handleRequest($request);
Symfony探查器的“表單/已提交數據”部分的屏幕截圖:
如您所見,測試現在具有John Doe的ID296310。我不知道為什么會這樣。 當以后持久化表單數據時,它將導致大量插入和刪除。 我還觀察到處理表格后數據完全丟失了。
屏幕截圖中返回的值是LeadContact
,但似乎您正在嘗試獲取Lead
。 無論如何,您都應該傳入要調用的任何存儲庫的類名。
$yourVar = $this->getRepository(YourClass::class)->findMethod($id);
我猜您想要的是Lead而不是LeadContact,例如:
$lead = $this->getRepository(Lead::class)->findWithContacts($id);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.