2012-10-18 8 views
25

Ich habe zwei Entitäten: Benutzer und Person.Symfony2: Erhalte die ID des persistenten Objekts

In der Entität Benutzer brauche ich die ID der zugehörigen Person: user_id.

Wenn ich einen neuen Benutzer erstelle, muss ich zuerst die Person und dann den Benutzer erstellen. In den Benutzer muss ich die ID der entsprechenden Person und dafür muss ich die ID der persistenten Objekt Person, die eine automatische Erhöhung ist.

Ist es möglich, die ID des Objekts zu erhalten, nachdem:

$em->persist($person); 
$em->flush(); 

Und wie kann ich dies tun?

Die Alternative ist, die größte ID es die Tabelle Person zu suchen und diese zu nehmen, aber ich denke, es sollte eine bessere und einfachere Methode geben, die ID des persistenten Objekts zu erhalten.

in PHP zum Beispiel, wenn ich

$articleID = $_DB->queryRaw((....); 

ausführen ich die ID wie das bin immer.

Antwort

39

Symfony2 with Doctrine Als Standard ORM generiert automatisch eine ID nach Daten in der Datenbank gespeichert. So können Sie die ID anrufen ->getId()

$id = $person->getId(); 
+0

Vielen Dank @HHabibillah, das funktioniert. Die einzige Sache: Es gibt keine var in PHP, nur $ id = $ person-> getId(); Wenn Sie dies bitte bearbeiten können und ich werde Ihre Antwort akzeptieren. –

+0

Vielen Dank für Ihre Korrektur. Ich habe bearbeiten, um eine korrekte Syntax zu sein. – Habibillah

+2

Danke, ich werde die Antwort in 1h akzeptieren, ich habe jetzt meine Startpause. –

Verwandte Themen