سؤال

الهدف:استرداد مجموعة من المنتجات التي لها سمة معينة

وهنا ما أحاول:

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. يجب أن تفعل

الخدعة.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى magento.stackexchange
scroll top