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

christian ewigfrost christian-kulozik at gmx.net
Thu Nov 23 08:23:56 CET 2017


Quote: Mikel wrote on Wed, 22 November 2017 08:59
----------------------------------------------------
> > Wo "genau" gehört denn das rein? In die Klasse deren record manuell gelöscht wird (sozusagen die "1" in der 1:n Relation) oder in die Klassen die mit der Klasse in Relation stehen und deren spezifische records automatisch gelöscht werden sollen?
> 
> Das gehört in Dein Domain Model. An die Stelle, an der Du Deine Relation definierst.
> Einfaches Beispiel:
> Model Automarke
> Model Automodel
> Eine Automarke kann mehrere Modele haben. Die Relation zwischen Marke und Model definierst du (in diesem Beispiel) in der Marke, um der Marke die verschiedenen Modele zuzuordnen.
> Im Modell „Automarke" definierst Du ein property für die Relation, z.B. $carModels. Diesem Property weißt Du dann das cascade remove zu.
> Siehe auch Doku, in der eigentlich alles gut beschrieben ist: https://docs.typo3.org/typo3cms/ExtbaseFluidBook/5-Domain/2-implementing-the-domain-model.html <https://docs.typo3.org/typo3cms/ExtbaseFluidBook/5-Domain/2-implementing-the-domain-model.html>
> 
> 
> > Auch erschließt sich mir nicht was mit der Variablen "$yourRelation" gemeint ist. Sry für die dummen Fragen, aber ich bin in Typo3 einfach ein blutiger Anfänger, sonst bin ich eher in C# unterwegs.
> 
> $yourRelation ist ein exemplarischer Platzhalter für dein Property, welche die Relation definiert. Du musst diese natürlich abstrahieren bzw. mit Deiner eigenen Relation ersetzen.
----------------------------------------------------

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. 


More information about the TYPO3-german mailing list