Ankündigung

Einklappen
Keine Ankündigung bisher.

Form Collection Delete Element

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • [Symfony] Form Collection Delete Element

    Hi,

    wenn man nach dem Muster http://symfony.com/doc/current/cookb...llections.html ein Formular umsetzt, und bei delete das Elemente nur als gelöscht markiert (soft delete) gibts es mit dem Index ein Problem.
    Sprich wenn ein Element als gelöscht markiert wird und man es dann nicht mehr anzeigt, ist der index dann um eins zu klein, und das letzt Element wird überschrieben.

    Nur könnte man die als gelöscht markierten Elemente immer mit ausgeben und eventuell in der liste dann halt nicht anzeigen.
    Oder man schafft es irgendwie die id's als key zu verwenden, allerdings hätte ich da keine idee wie ich das umsetze.

    Wie geht ihr den so mit dem Problem um, bzw was gibts noch für Lösungswege?

    Freue mich über jeden Input.

    danke

    mfg fakerer




  • #2
    Frage nicht zu verstehen?
    oder nutzt keiner weil's bessere einfachere Lösungen gibt?
    Oder keine ne Idee.

    Kommentar


    • #3
      Eventuell wäre es hilfreich wenn du etwas Code postest. Ich jedenfalls verstehe dein Problem nur im Ansatz und kann gedanklich noch nicht reproduzieren, wo du anstehst.
      [URL="https://github.com/chrisandchris"]GitHub.com - ChrisAndChris[/URL] - [URL="https://github.com/chrisandchris/symfony-rowmapper"]RowMapper und QueryBuilder für MySQL-Datenbanken[/URL]

      Kommentar


      • #4
        Den Sachverhalt, den du beschreibst, kann ich nicht nachvollziehen. Wenn du den Softdelete Filter aktiviert hast, dann ist dein Element in der Liste garnichtmehr enthalten - dafür sorgt ein EventListener im Hintergrund. Wenn du ihn deaktivierst, dann ist das Element enthalten und es gibt auch keine Indexkollision. Bitte poste etwas Code und ich helfe dir gerne weiter.

        Kommentar


        • #5
          Zeig mal deine Action her. Kann es sein, dass deine Collection nach dem Softdelete, das gelöschte Element noch beinhaltet und du das Form gleich wieder anzeigst? Somit hast du dann ein Element drin, was eigentlich nicht da sein dürfte...

          Du kannst anstatt der Built-In Form Collection auch eine eigene "Entity-Collection" bauen (Form-Type) und vielleicht als Index des Arrays die ID des Entity verwenden? Aber grundsätzlich würde ich davon ausgehen, dass das Entity nach dem Löschen nicht mehr in der Collection sein sollte, und somit auch nicht gerendert wird. Der Index sollte dann auch passen... Debug da mal ganz genau was für Indexes verwendet werden bei Collections mit softdeleted Entries.

          Kommentar


          • #6
            Jungs, der war seit nem Monat nicht mehr hier.
            "Software is like Sex, it's best if it's free." - Linus Torvalds

            Kommentar


            • #7
              Fehler ist bekannt, siehe http://stackoverflow.com/questions/3...n-in-symfony-2 .
              Du musst die Indexe manuell "nachaktualisieren", wenn du das ganze per Ajax machst. So wie es im Cookbook steht (ohne ajax) tritt der Fehler nicht auf, da die Indexe automatisch beim Neuladen der Seite angepasst / erneuert werden.

              ~phpIT

              Kommentar

              Lädt...
              X