Frage

Wie soll fakultative Eins-zu-Eins-Beziehung in Lehre ORM und Symfony umgesetzt werden? Angenommen, es gibt einige Ordner in der Datenbank vertreten. Jeder Ordner kann ein Standardsymbol haben oder einige benutzerdefinierte Symbol in einer anderen Tabelle dargestellt. Wie soll diese Beziehung in der Schemadatei beschrieben werden? Wie kann ich, dass im Falle erzählen von bestimmten Ordner Beziehung tut oder nicht auftritt?

Ich selbst habe auf Vermutungen, aber jeder scheint nicht ganz gut zu sein:

1) Lassen Sie uns sagen, dass ich folder_icon Tisch mit id Spalte und folder_icon_id Spalte in folder Tabelle und verknüpfen diese Spalten mit Fremdschlüssel definieren. Wenn folder_icon_id NULL enthält, Beziehung tritt nicht auf. Wenn es einige Integer-Wert enthält verweist er auf entsprechende Ordnersymbol. Wenn ich es auf diese Weise implementieren und versuchen, Ordner zu erhalten Symbol so etwas wie $ Ordner-> getFolderIcon mit (), ich eine Instanz von FolderIcon Klasse bekommen mit auf null gesetzt Felder (wo würde ich eher excpect etwas wie NULL, FALSE oder Doctrine_Null erhalten ). Wieso ist es so? Wie soll ich überprüfen, ob das zurückgegebene Objekt nicht ‚real‘ Ordnersymbol ist?

2) Nehmen sie an, dass ich Methode ähnlich wie bei früheren, aber ich definiere erste Reihe von folder_icon Tabelle das Standardsymbol zu sein, so dass jeder Ordner, der kein benutzerdefiniertes Symbol muss diese erste Zeile ausgewählt ist verwandt. In diesem Fall gibt es kein Problem mit einem paar Dummy-Instanzen FolderIcon Klasse zu bekommen. Aber es gibt ein Problem, wenn benutzerdefinierte Ordner-Symbol wird entfernt Formulardatenbank, da es kein onDelete Verhalten ‚SET 1‘ ist beziehen alle Ordner des gelöschten Symbol mit dem Standardsymbol verwendet wird.

Wie soll dieses Problem gelöst werden? Was ist der richtige Weg, um diese Art von Beziehung in Schemadatei zu definieren?

War es hilfreich?

Lösung

Das Problem ist mit den magischen Methoden getVariable

Verwenden $ Ordner-> folder_icon und Test für eine Existenz dieser Beziehung Gebrauch isset (). Haben Sie einen Lese der Lehre Website docs über die Prüfung für die Existenz einer Beziehung, bin ich zur Zeit mobil so nicht in der Lage zu Link zu.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top