Wie entferne ich alle Artikel in einer Magento-Produktkollektion?

7

Scheint nicht funktioniert:

%Vor%

$ collection ist immer noch bevölkert

    
Antonino Bonumore 10.12.2011, 00:22
quelle

5 Antworten

3

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

    
Anatoly A. Kazantsev 07.01.2013, 09:59
quelle
10

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.

    
Shay Acrich 28.11.2013 07:20
quelle
7

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.

    
Alan Storm 11.12.2011 05:44
quelle
0
%Vor%

sollte die Arbeit machen.

    
Sveta Oksen 14.10.2013 12:20
quelle
0

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.

    
jacek.ciach 01.06.2017 18:36
quelle

Tags und Links