Это выдержка из моих данных 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
...
Я вижу те же данные сообщения в разделе «Параметры запроса / POST» профилировщика Symfony. Я предоставляю данные здесь в виде текста, потому что снимок экрана будет содержать много другой ненужной информации. Из соображений конфиденциальности я заменил исходные значения имени и фамилии. Да, "foo bar" появляется дважды.
Моя проблема в том, что Symfony смешивает идентификаторы и содержимое после обработки запроса:
$lead = $this->getRepository()->findWithContacts($id);
$form = $this->createForm(LeadType::class, $lead);
$form->handleRequest($request);
снимок экрана из раздела Form / Submitted Data профилировщика Symfony:
Как видите, test теперь имеет идентификатор Джона Доу 296310. Я понятия не имею, почему это происходит. При дальнейшем сохранении данных формы это приводит к большому количеству вставок и удалений. Я также заметил, что данные были полностью потеряны после обработки формы.