احصل على تصفية مجموعة المنتجات حسب السمة الموجودة?
سؤال
الهدف:استرداد مجموعة من المنتجات التي لها سمة معينة
وهنا ما أحاول:
public function Hydrate($attribute)
{
$this->id = Mage::helper('myHelper')->CamelCase($attribute->getFrontendLabel());
$this->name = $attribute->getFrontendLabel();
$products = Mage::getModel('catalog/product')
->getCollection()
->addAttributeToSelect('*')
->addFieldToFilter($attribute->getAttributeCode(),array('like' => '%%'))
->load();
foreach ($products as $product)
{
array_push($this->collection,Mage::getModel('myModels/Json_Product')->Hydrate($product));
}
return Mage::helper('myHelper')->ConvertToJson($this);
}
انها تعمل.ومع ذلك, كنت أتساءل فقط إذا كان هذا أدفيلدتوفيلتر () سيكون لها أي تداعيات لا أستطيع أن أرى حاليا?
الماجنتو 1.9.x
المحلول
LIKE
ليس الخيار الأكثر أداء.منذ %%
(وهو ما يعادل %
) يطابق كل سلسلة ، حتى سلاسل فارغة ، ربما تريد التحقق مما إذا كان الحقل NOT NULL
.
معلمة المرشح الصحيحة في هذه الحالة هي:
->addFieldToFilter($attribute->getAttributeCode(),array('notnull' => true))
نصائح أخرى
href="https://stackoverflow.com/Questions/1332742/magento-retrieve-products-with-a-specific-attribute-value"> هنا يمكنك رؤية سؤال محمي حول هذاإظهار كيفية أداء ما تحتاجه.
تستخدم أساسا
giveacodicetagpre. يجب أن تفعلالخدعة.
لا تنتمي إلى magento.stackexchange