Hemen hemen tüm Magento Modelleri Modelin birden çok örneği almak için kullanılan bir karşılık koleksiyon nesnesi var.
Ürün koleksiyonu örneğini, aşağıdakileri yapın
$collection = Mage::getModel('catalog/product')->getCollection();
Ürünler bir Magento EAV tarzı Modeli vardır, bu yüzden size dönmek istediğiniz ek özellikler eklemek gerekir.
$collection = Mage::getModel('catalog/product')->getCollection();
//fetch name and orig_price into data
$collection->addAttributeToSelect('name');
$collection->addAttributeToSelect('orig_price');
Koleksiyonları, filtreleri ayarlamak için birden fazla sözdizimi var. Ben her zaman aşağıda ayrıntılı birini kullanın, ancak filtreleme yöntemleri kullanılabilecek ek yollar için Magento kaynağını incelemek isteyebilirsiniz.
(Daha büyüktür ve daha az) değerleri bir dizi filtre nasıl aşağıdaki gösterir
$collection = Mage::getModel('catalog/product')->getCollection();
$collection->addAttributeToSelect('name');
$collection->addAttributeToSelect('orig_price');
//filter for products whose orig_price is greater than (gt) 100
$collection->addFieldToFilter(array(
array('attribute'=>'orig_price','gt'=>'100'),
));
//AND filter for products whose orig_price is greater than (lt) 130
$collection->addFieldToFilter(array(
array('attribute'=>'orig_price','lt'=>'130'),
));
Bu bir şey YA eşittir başka bir isim tarafından filtre olsa.
$collection = Mage::getModel('catalog/product')->getCollection();
$collection->addAttributeToSelect('name');
$collection->addAttributeToSelect('orig_price');
//filter for products who name is equal (eq) to Widget A, or equal (eq) to Widget B
$collection->addFieldToFilter(array(
array('attribute'=>'name','eq'=>'Widget A'),
array('attribute'=>'name','eq'=>'Widget B'),
));
Desteklenen kısa Koşullamalar (eq, lt, vs) tam listesi lib/Varien/Data/Collection/Db.php
olarak _getConditionSql
yöntemi bulunabilir
Son olarak, tüm Magento koleksiyonları (taban toplama sınıf yineleyici arayüzleri üzerinde uygular) iterated olabilir. Bu filtreler ayarlanır kez ürün kapmak olacak nasıl olduğunu.
$collection = Mage::getModel('catalog/product')->getCollection();
$collection->addAttributeToSelect('name');
$collection->addAttributeToSelect('orig_price');
//filter for products who name is equal (eq) to Widget A, or equal (eq) to Widget B
$collection->addFieldToFilter(array(
array('name'=>'orig_price','eq'=>'Widget A'),
array('name'=>'orig_price','eq'=>'Widget B'),
));
foreach ($collection as $product) {
//var_dump($product);
var_dump($product->getData());
}