[Frage] Repository->remove() Datensatz endgültig löschen [Gelöst]

  • 0 x
    64 Beiträge
    4 Hilfreiche Beiträge
    20. 12. 2013, 16:06

    Ich muss schon wieder mit einer Frage nerven :)
    Und zwar hätte ich es gern, dass beim Repository->remove($object) der Datensatz wirklich aus der Datenbank geöscht wird und nicht nur das Flag bei "deleted" gesetzt wird. Kann man das irgendwo einstellen oder muss ich die remove-Funktion im Repository manuell überschreiben? Habe leider nirgendwo etwas dazu gefunden.

  • harald1972 harald197...
    Sternenflotten-Admiral
    1 x
    198 Beiträge
    13 Hilfreiche Beiträge
    03. 01. 2014, 15:05 - Lösung

    Hallo und frohes Neues!

    Im TCA stehen für all deine Objekte im

    1. 'ctrl' => array(
    2. ...
    3. 'delete' => 'deleted',
    4. ...

    Ich hab das bisher nie verändert (und ausprobiert), könnte aber etwas mit deinem Problem zu tun haben. ;)
    Du kannst die entsprechende Zeile ja mal auskommentieren und sehen, was passiert.

    Wenn es aber beide Möglichkeiten geben soll (markieren oder löschen), wirst du glaub nicht um eine eigene Funktion drumrum kommen.


  • 1
  • jenses jenses
    Flash Gordon
    0 x
    3087 Beiträge
    106 Hilfreiche Beiträge
    20. 12. 2013, 16:26

    Repository->remove() nimmt keine weiteren Parameter entgegen, daher geht das dann wohl eher nicht.
    Also Funktion selber schreiben.
    Aber warum? Manchmal löscht man etwas aus Versehen, da ist dann eine Wiederherstellfunktion schon ganz praktisch.
    Performance- oder "Platz-in-der-Datenbank"-Gründe laß ich nicht gelten -
    da sollte man dann überhaupt kein TYPO3 in Verbindung mit extBase-Extensions nutzen ;)

  • 0 x
    64 Beiträge
    4 Hilfreiche Beiträge
    20. 12. 2013, 17:40

    Nein, mit Platzgründen hat das zu tun :) Und ja du hast Recht, in den meisten Fällen ist das egal, ob die Datensätze nach dem Löschen noch in der Datenbank sind.
    Ich finde nur, dass man in manchen Fällen wirklich den Datensatz löschen sollte. Z.B. wenn ich irgendwo meinen Account löschen möchte, dann will ich nicht, dass der Account nur als gelöscht markiert wird, sondern wirklich weg ist (nicht wie bei einigen Firmen, wo dann plötzlich wieder Daten auftauchen, weil das delete-Flag ignoriert oder überschrieben wurde o.ä.). Zum Teil ist es ja auch gar nicht erlaubt, die Daten weiterhin in der Datenbank zu haben, wenn sie nicht mehr benötigt werden (zumindest wenn es um Nutzerdaten geht).

    Hm dann werd ich wohl nicht drum herum kommen, mir selber eine Funktion zu schreiben. Danke trotzdem :)

  • harald1972 harald197...
    Sternenflotten-Admiral
    1 x
    198 Beiträge
    13 Hilfreiche Beiträge
    03. 01. 2014, 15:05

    Hallo und frohes Neues!

    Im TCA stehen für all deine Objekte im

    1. 'ctrl' => array(
    2. ...
    3. 'delete' => 'deleted',
    4. ...

    Ich hab das bisher nie verändert (und ausprobiert), könnte aber etwas mit deinem Problem zu tun haben. ;)
    Du kannst die entsprechende Zeile ja mal auskommentieren und sehen, was passiert.

    Wenn es aber beide Möglichkeiten geben soll (markieren oder löschen), wirst du glaub nicht um eine eigene Funktion drumrum kommen.

  • 0 x
    64 Beiträge
    4 Hilfreiche Beiträge
    06. 01. 2014, 12:43

    Hallo, frohes Neues und vielen Dank für deine Antwort! :)
    Dein Tipp war die richtige Antwort! Ich habe die Zeile "'delete' => 'deleted'," im crtl-Array in der ext_tables.php meiner Erweiterung einfach auskommentiert, den Konfig-Cache geleert und nun werden die Datensätze für das Model richtig aus der Datenbank gelöscht!
    Danke nochmal!

  • 1