2017-05-16 2 views
0

Wenn ich einen Benutzer mit FOSUserBundle Usermanager erstellen und dann will ich es unterschiedliche Entity hinzuzufügen wie folgt aus:Verwenden Benutzer von FOSUserBundle mit einem anderen Unternehmen

$log = new Log(); 
$log->setOwner($user) 

-I-Fehler erhalten, dass „eine neue Einheit durch die gefunden wurde Beziehung". Es scheint, dass $user, die mit FOSUserBundle UserManager erstellt wird nicht standardmäßig EntityManager ($this->getDoctrine->getManager()) gesehen wird und es zur Datenbank hinzufügen möchte. Früher hat es funktioniert, aber mit einigen aktuellen FOSUserBundle Update wurde es gestoppt. Zuvor konnte USER Manager die Benutzerentität zur Datenbank hinzufügen, und der EntityManager konnte die Protokolleinheit mit einem Verweis auf die Benutzerentität ($owner) hinzufügen.

Irgendwelche Ideen, was los ist und wie Sie das beheben können?

+0

Scheint, dass Sie die Log-Entität beibehalten sollten. Wann führst du den Flush aus? Der fos user manager behält den neu erstellten Benutzer? – Carlos

+0

Ich erstelle Benutzer $ this-> userManager-> createUser(), setze E-Mail usw. Dann füge ich es zu Log mit $ log-> setOwner ($ user) hinzu, dann behalte ich Log und mache dann flush. Wenn ich $ this-> userManager-> updateUser ($ user, false) verwende; und mache dann flush für alles, was ich über den Fehler bekomme. Wenn ich $ this-> userManager-> updateUser ($ user) verwende; Benutzer wird gespeichert und EntityManager versucht dann, es erneut hinzuzufügen. – Tom

+0

Haben Sie versucht, den Benutzer zu halten? Ich bin mir nicht sicher, ob der Manager das standardmäßig tut. – Carlos

Antwort

1

Von den Kommentaren zu Ihrer Frage.

Zuerst sollten Sie die Log-Entität persistent machen und dann den Benutzer als Eigentümer hinzufügen.

Verwandte Themen