Ich verstehe keinen kleinen Teil der . Ein Teil der Dokumentation:Was ist mit Doktrin erzeugten Bezeichnern nach Persist + Flush?
generierten Einheits-Identifikationen/Primärschlüssel sind garantiert verfügbar nach der nächsten erfolgreichen Räum-Operation sein, der die fragliche Einheit beinhaltet. Sie können sich nicht darauf verlassen, dass eine generierte ID direkt nach dem Aufruf von persist verfügbar ist. Die Umkehrung ist auch wahr. Sie können sich nicht darauf verlassen, dass eine generierte Kennung nach einer fehlgeschlagenen Flush-Operation nicht verfügbar ist.
Bedeutet es, dass, wenn ich schaffen eine Einheit, die ich kann nicht die ID zu einem anderen Controller senden Sie eine automatisch generierte ID und persist
+ flush
diese juristische Person?
some mag:
public function testAction()
{
$fabulous = new User();
$fabulousForm = $this->get('form.factory')->create(FabulousType::class, $fabulous);
if($fabulousForm->isSubmitted() && $fabulousForm->isValid())
{
$fabulousId = $fabulousForm->getData()->getUser()->getId();
$em = $this->getDoctrine()->getManager()->persist($fabulous)->flush();
return $this->redirectToRoute('my_fabulous_route', array('user_id' => fabulousId));
}
}
Sie können Ihre benutzerdefinierten ID in einem anderen verwandten Unternehmen verwenden, aber wenn Sie ein Problem haben, später Ihre Einheit mit Original-ID Spülung Ihrer Datenbank inkonsistent und Sie können Fehler auftreten. Außerdem gibt es Einschränkungen, wenn Sie Doktrinrelationszuordnungen zwischen Ihren Entitäten verwenden. – Hokusai
Nun das Problem ist, dass ich einen neuen Benutzer erstellen möchte, speichern Sie ihn und senden Sie seine ID an einen anderen Controller, damit ich den Benutzer, den ich gerade in den zweiten Controller gespeichert habe, finden und ein paar Sachen mit ihm machen kann. –
Wenn die Leistung kein Problem ist, können Sie zuerst Ihre Benutzerentität in die Datenbank leeren und dann die Benutzerentität aus der Datenbank mit der tatsächlichen ID abrufen. Es gibt mindestens 2 Abfragen. – Hokusai