[TYPO3-german] Löschen von in Beziehung stehender records (evtl. über @cascade remove) - Grundsätzliche Frage

Mikel lists at con-version.com
Thu Nov 23 08:50:26 CET 2017


> Das Problem ist: Ich habe keine Relationen im Domain Model definiert, sondern arbeite mit den TCAs. Also in meinem Beispiel weise ich beim Anlegen, einem record des Typs "services" einen record des Typs "Host" zu. In der zu der Klasse "services" gehörigen php Datei im TCA Ordner ist es so definiert dass über die foreign table (also in dem Fall "Host") der property "host" des Typs "services" die Uid des ausgewählten "host" records gegeben wird. Dadurch scheint ja auch eine Relation erstellt worden zu sein, da mich ja Typo3 beim Löschen eines records im BE auf die Relationen hinweist, aber ich hab die Relation NICHT in der Klassendefinition von Host oder service definiert, wie du sagtest. Nur in der jeweiligen Datei im TCA Ordner. 
> Momentan hab ich das Gefühl dass ich meine Relationen "anders" angelegt habe. Kann sein, dass ich da evtl. eine Verständnisslücke habe. Falls dem so ist wäre ich über eine Korrektur meines Missverständnisses sehr dankbar. 

Das TCA (Table Configuration Array) wird vom Backend schon verstanden, von Extbase aber nicht persistiert.
Auf diesem Wege wirst Du weiterhin mit Workarounds arbeiten müssen.
Wenn Du Deine Relationen auch in deinem Datenmodel definierst, dann kannst Du diese Vorteile nutzen und kannst im Frontend auch ohne Workarounds auf die Relationen zugreifen.
Z.B. per {yourModel1.relationsToModel2}. Sowas geht nicht, wenn das Model keinen entsprechende get…() Methode hat (also keinen getter).

Vorschlag: installiere Dir mal den extension_builder und erstelle Dir mal zwei Datenmodelle mit diversen Relationen (n:1, 1:n, m:n) zueinander und schau Dir die erzeugten Models an.


More information about the TYPO3-german mailing list