Ich bin neu in Doctrine, Mongo und der ODM-Konfiguration und während ich mit dieser Einstellung in ZF1 spiele, versuche ich eine einfache Eins-zu-Viele-Referenz mit einem zu replizieren Zwang. Hier ist die Situation und möchte einige Hinweise, wie dies zu erreichen ist.Doctrine ODM MongoDB - Eine einfache Eins-zu-Viele-Referenz replizieren
Dies ist ein einfacher benutzer> Rollenzuordnung, so in einer SQL-Situation würde ich Tabellen wie folgt:
Users - id - name - role_id Roles - id - name
Dann wird ein Fremdschlüssel auf dem Benutzer eingestellt werden würde ROLE_ID auf die Rolle zur Karte Ich würde. Und beim Löschen einer Rolle würde eine Fremdschlüsseleinschränkung ausgelöst werden, die die Operation stoppt.
Wie könnte ich das gleiche Ziel in Doctrines MongoDB ODM erreichen?
Bisher habe ich mit verschiedenen Arten von Anmerkungen auf der Benutzereinheit einschließlich @ReferenceOne @ReferenceMany mit verschiedenen Kaskaden Optionen gespielt habe ...
Die Wahl mir jetzt links ist @PreUpdate, @PreRemove Lebensereignisse zu implementieren auf der 'Rolle' Entität und dann prüfen, dass keine Benutzer die Rolle verwenden, wenn sie dann auf Update sind, ändern Sie die Referenz zu entsprechen oder zu entfernen werfen Sie eine Ausnahme.
Bin ich hier oder verloren?
Danke,
Si
Große Antwort, vielen Dank! –
Kein Problem. Ich habe den gleichen Schmerz durchgemacht wie du, als du mit Doktrine angefangen hast. Es ist toll, wenn du den Dreh raus hast! –
Ich denke, es ist wirklich sehr gut. Es macht den Aufbau einer Service-Schicht über die Spitze viel einfacher. Ein kleiner Punkt ist die Rolle :: hasUsers() sollte zurückgegeben werden! $ This-> users-> isEmpty(); um den Booleschen Wert zu invertieren. Vielen Dank für Ihre Hilfe und das funktioniert wie ein Traum. –