当我提交我的表单并且我在数据库中获得了团队时(之前没有 INSERT / 没有 UPDATE),当我已经在数据库中拥有旧成员的 ID 时,Doctrine 返回新成员的 ID(我在表单中被选中)。
如何解决问题?
感谢。
// Get team datas
$teams = $this->getDoctrine()->getRepository(Teams::class)->find($id);
echo $teams->getMember()->getId(); // Display 5 (actual member)
// Create Form
$form = $this->createFormBuilder($teams)
->setAction($this->generateUrl('teams_update'))
->add('member', EntityType::class, array(
'class' => Members::class,
'choice_label' => 'login'
))
->add('name', TextType::class)
->add('status', CheckboxType::class, array('required' => false))
->getForm();
// Submit Form
$form->handleRequest($request);
if($form->isSubmitted() && $form->isValid()) {
// Get team datas again to compare
$teamsAfter = $this->getDoctrine()->getRepository(Teams::class)->find($id);
echo $teamsAfter->getMember()->getId(); // Display 6 and no 5 (member selected in form, but no save in database)
echo $teams->getMember()->getId(); // Display 6 too (member selected in form, but no save in database)
}