Scheint nicht funktioniert:
%Vor%$ collection ist immer noch bevölkert
Es gibt clear()
Methode in Varien_Data_Collection
class, die die Sammlung löscht.
Ich bin nicht sicher, ob die Methode in der Zeit existiert, in der die Frage gestellt wurde, aber sie existiert in Magento 1.7
Wenn Sie mit einer leeren Sammlung arbeiten möchten, wäre es am besten, sie mit einem Filter zu laden, der immer einen leeren Satz erzeugt. Hier ist ein Beispiel:
%Vor%Da die Magento-Produkt-IDs bei 1 beginnen, bleibt diese Sammlung leer, bis Sie ihr Elemente mit der addItem () -Methode hinzufügen.
clear () und removeItemByKey () andererseits werden nur einen zweiten Lauf zur Datenbank auslösen, um die Daten, die Sie nicht dort haben wollen, erneut zu holen.
Deine Frage macht keinen Sinn. Ausführen des folgenden Codes
%Vor%bewirkt, dass nur das Wort "done" ausgegeben wird (Magento 1.6.1).
Ich schätze es etwas über Ihre Installation von Magento macht den Aufruf von $ c- & gt; getItems (); triggert ein Reload der Sammlung. Sie entfernen also alle Elemente, aber wenn Sie dann Ihr zweites getItems
aufrufen, wird die Sammlung erneut abgerufen.
Es gibt auch eine Möglichkeit, alle Gegenstände ohne "falsches Laden" zu entfernen (im Gegensatz zu Shay Acrichs Antwort):
%Vor% Das Festlegen von _totalRecords
auf 0
ist erforderlich, damit getSize()
method die Sammlung nicht erneut laden kann.
Trotzdem muss der Code einer Collection erweitert / modifiziert werden, da sowohl das Feld _totalRecords
als auch die Methode _setIsLoaded()
geschützt sind.
Es sollte beachtet werden, dass, wenn eine bestimmte Sammlung Flags wie _totalRecords
und _isCollectionLoaded
ignoriert, die obige Lösung möglicherweise nicht wie erwartet funktioniert.
Tags und Links magento collections