Eins-zu-Viele-Beziehung der Dokutrine wird nicht gespeichert - Integritätseinschränkungsverletzung

8

Ich versuche Doctrine ORM Associations zu verwenden. Ich habe mehrere Tutorials und Online-Dokumente gelesen, aber es funktioniert nicht, und ich bin ehrlich gesagt nicht sicher, was ich hier falsch mache. Scheint so, als ob meine Experimente mit Doctrine ziemlich gut getroffen sind. Jede Hilfe wäre willkommen.

Ich hätte gerne eine User-Entity und eine UserHistory-Entity, die mehrere Zeilen für einen einzelnen Benutzer haben. Das klingt für mich nach One-To-Many. Ich brauche es nicht notwendigerweise bidirektional.

Das Problem, das ich habe, ist das Hinzufügen eines History-Elements zu einem Benutzer führt zu einem Fehler beim Speichern des Benutzers, da die Spalte user_id nicht in der Tabelle user_history festgelegt ist.

Entitäten:

%Vor%

In meinem Controller versuche ich das:

%Vor%

All dies führt zu einer Verletzung der Integritätsbedingung.

Doctrine \ DBAL \ DBALException

Datei: /myproject/vendor/doctrine/dbal/lib/Doctrine/DBAL/DBALException.php:91

Nachricht:

Bei der Ausführung von 'INSERT INTO user_history (user_id) VALUES (?)' mit params [null]:

ist eine Ausnahme eingetreten

SQLSTATE [23000]: Verletzung der Integritätsbedingung: 1048 Die Spalte 'user_id' darf nicht null sein

Wie ich schon sagte, ich habe SO hier gegraben, gegoogelt, versucht, Dinge in den Annotationen zu bewegen. Das ist soweit ich komme. Ich bin mir nicht sicher, was ich falsch mache. Kann jemand helfen?

    
Phillip Harrington 02.03.2014, 03:38
quelle

1 Antwort

10

Das Problem besteht darin, dass Sie die Benutzerentität nicht in Ihrer Verlaufsklasse festlegen. Der Verband macht das nicht automatisch.

%Vor%     
Cerad 02.03.2014, 07:26
quelle

Tags und Links