SORU
26 AĞUSTOS 2009, ÇARŞAMBA


Profesyonel özel öznitelik değeri olan ürünleri Almak

Blok kodunu kullanarak programlama yoluyla belirli bir değere sahip bir öznitelik ürünlerin bir listesini almak için çalışıyorum.

Alternatif olarak bu mümkün değil nasıl bir bütün ürünler o zaman onları sadece belirli bir niteliği olan ürünler listesi için filtre almak mı? Eğer

Nasıl benim ürün alt maç için bir arama standart boolean filtreleri AND OR kullanarak gerçekleştirmek istiyorsunuz?

CEVAP
27 AĞUSTOS 2009, PERŞEMBE


Hemen hemen tüm Profesyonel Modeller bir Model birden çok örneği almak için kullanılan karşılık gelen bir Koleksiyon nesnesi.

Ürün koleksiyonu oluşturmak için aşağıdakileri yapın

$collection = Mage::getModel('catalog/product')->getCollection();

Ürünler Profesyonel etkin değeri tarzı bir Model, iade etmek istediğiniz herhangi bir ek özellikler eklemek gerekir.

$collection = Mage::getModel('catalog/product')->getCollection();

//fetch name and orig_price into data
$collection->addAttributeToSelect('name');  
$collection->addAttributeToSelect('orig_price');    

Koleksiyon üzerinde filtre ayarı için birden çok sözdizimi var. Ben hep aşağıda ayrıntılı kullanıyorum ama filtreleme yöntemleri kullanılabilir ek yollar için Profesyonel kaynağını incelemek isteyebilirsiniz.

Aşağıdaki değerler aralığına göre filtre uygulamak için nasıl (büyüktür VE küçüktür) 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 less than (lt) 130
$collection->addFieldToFilter(array(
    array('attribute'=>'orig_price','lt'=>'130'),
));

Bu isimde bir filtre olsa bir şey YA da başka bir eşittir.

$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şulların tam listesi (eq,lt, vb.) lib/Varien/Data/Collection/Db.php . _getConditionSql yöntem bulunabilir

Son olarak, tüm Profesyonel koleksiyonları (temel toplama sınıf yineleyici arayüzleri üzerinde uygular) yinelenen olabilir. Bu filtreler ayarladığınızda ürün kapacaksın.

$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());
}

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Christian Atlas

    Christian At

    26 Mart 2009
  • Just So

    Just So

    3 HAZİRAN 2007
  • Need for Speed

    Need for Spe

    8 ŞUBAT 2006