2012-08-03 21 views
6

Gestern habe ich einen Code geschrieben, um eine Sammlung von Produkten zu ziehen. Dieser Code hat gut funktioniert, aber heute funktioniert der Code rot, nichts hat sich geändert, ich kann nicht verstehen, warum es nicht funktioniert. DieseMagento Sammlung nicht Attribut

ist, was ich codiert

$collection = Mage::getModel('catalog/product')->getCollection() 
->addAttributeToSelect('MPN') 
->addAttributeToSelect('JAN') 
->addAttributeToSelect('UPC') 
->addFieldToFilter(array(
    array('attribute'=>'type_id','eq'=>'simple') 
)) 
->setPage(1,10); 
$collection->load(); 
foreach($collection as $item) 
{ 

echo print_r($item->getdata()); 
} 

Gestern konnte ich eine Liste der Produkte, um zu sehen, dass meine MPN des Jans und UPC enthalten (diese sind benutzerdefinierte im Backend-Attribute). Heute laden sie überhaupt nicht. Es ist komisch, ich denke, mein Verständnis von Sammlungen ist vielleicht nicht so gut wie ich dachte.

Jede Hilfe würde sehr geschätzt werden.


EDIT:

die magento Cache Refreshing schien alles wieder funktioniert. Bedeutet dies, dass die Sammlung manchmal den Cache verwendet, gibt es eine Möglichkeit, den Code so zu schreiben, dass er den Cache nicht verwendet?

Antwort

12

Es hängt davon ab, wo Sie Ihre Sammlung verwenden. Wenn die Sammlung im Frontend verwendet wird und der Flat-Modus aktiviert ist, sind Ihre Attribute nicht verfügbar, da sie nicht im Flat-Index enthalten sind.

Um sich in flachen Index zu enthalten, müssen Sie die folgende XML-Konfiguration in Ihre config.xml Datei des Moduls

<config> 
    <frontend> 
     <product> 
       <collection> 
        <attributes> 
         <MPN /> 
         <JAN /> 
         <UPC /> 
        </attributes> 
       </collection> 
      </product> 
    </frontend> 
</config> 

In diesem Fall fügen Sie es in dem Flat-Modus zur Verfügung stehen wird. Durch Hinzufügen von Attributen zu diesem XML-Knoten werden Ihre Attribute auch automatisch zu allen Produktlisten-Sammlungen auf dem Frontend hinzugefügt.

Viel Spaß mit Magento Entwicklung!

+1

Bemerkung: Funktioniert auch für Kategoriensammlungen (ersetzen Sie '' durch '') – Alex

Verwandte Themen