簡體   English   中英

Symfony 3.2形式:ID和實體值在句柄請求后混合在一起

[英]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探查器的“表單/已提交數據”部分的屏幕截圖:

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM