2014-03-05 5 views
5

Was ist der Unterschied zwischen addAttributeToFilter und addFieldToFilter in Magento? Ich habe ein benutzerdefiniertes Attribut YES/NO erstellt. Aber keiner von ihnen arbeitet für mich, als ich versuchte, eine Produktkollektion zu erstellen. Es filtert nichts.Unterschied zwischen addAttributeToFilter und addFieldToFilter in Magento?

$Products = Mage::getModel('catalog/product')->getCollection(); 
    $Products->addAttributeToSelect('*'); 
    $Products->addFieldToFilter('amazon_listed',1); 
    $Products->addFieldToFilter('status',Mage_Catalog_Model_Product_Status::STATUS_ENABLED); 
    $Products->load(); 
+0

Wie lautet Ihr Code bisher? – barell

+0

@barell aktualisiert – user2700690

Antwort

3

addFieldToFilter die Produkte filtern die Datenbank aus der Tabelle catalog_product_entity basierend auf Spalten in.

addAttributeToFilter filtert die Produkte basierend auf den Attributen, die Sie in Ihre Sammlung aufgenommen haben.

In Ihrem Fall Sie addAttributeToFilter wie diese verwenden müssen:

$Products->addAttributeToFilter('amazon_listed',array('eq' => 1)); 
$Products->addAttributeToFilter('status',array('eq' => Mage_Catalog_Model_Product_Status::STATUS_ENABLED)); 
5

addAttributeToFilter() verwendet EAV Sammlungen zu filtern.

addFieldToFilter() wird zum Filtern von Nicht-EAV-Sammlungen verwendet.

0

Um das Problem zu lösen,

Verwendung addAttributeToFilter() -Methode und versuchen, „in Produkliste verwendet“ gesetzt = Yes für Ihr Attribut auf Bearbeiten Attribut in der Admin-Panel.

Ich hoffe, es wird helfen.

Verwandte Themen