الحصول على قيمة السمة المنسدلة عند استخدام إضافة تريبوتوسليكت
-
11-12-2019 - |
سؤال
عند تحميل مجموعة كيف يمكنني الحصول على نص قيمة السمة (وليس فقط رقم الخيار) عندما تكون سمة قائمة منسدلة.
مثال:
$collection = Mage::getResourceModel('catalog/product');
$collection->addAttributeToSelect('color'); // color is a dropdown attribute
عند استخدام هذا الرمز ، يتم عرض معرف الخيار لـ color
مثل:123 ، 117 إلخ.وليس قيم النص (مثل:الأحمر والأخضر الخ.)
عادة ما نكرر من خلال كل منتج ونحصل على نص السمة ولكن بما أن هذا يتم استخدامه في كتالوج - > إدارة المنتجات الصفحة أنا أبحث عن حل بديل.
المحلول
أفترض أنك تستخدم أولا Mage_Catalog_Model_Resource_Product_Collection
وليس مجرد المورد كما هو مذكور في سؤالك.
الآن أنا أيضا على افتراض أن كنت حلقات من خلال نتائج مجموعتك.
foreach($collection as $product) {}
بمجرد حصولك على كائن المنتج ، يمكنك استدعاء الوظيفة getAttributeText
وحدد رمز السمة.سيؤدي هذا إلى تحميل السمة احصل على المصدر ثم نص الخيار بناء على بيانات السمة المخصصة للمنتج.
public function getAttributeText($attributeCode)
{
return $this->getResource()
->getAttribute($attributeCode)
->getSource()
->getOptionText($this->getData($attributeCode));
}
حتى إذا كنت حلقات من خلال جمع الخاصة بك تحتاج إلى استدعاء ببساطة:
foreach ($collection as $product) {
$color_value = $product->getAttributeText('color');
}
نصائح أخرى
حاول إضافة "_Value" بعد اسم السمة مثل هذا: giveacodicetagpre.
إذا كنت تستخدم جداول مسطحة للمنتجات، يمكنك البحث في جدول قاعدة بيانات Catalog_product_flat_1 لرؤية السمات المتاحة، وأعتقد.
هل تحتاج إلى فرز حسب القيم?إذا لم يكن الأمر كذلك ، يمكنك تحديد جميع خيارات السمات كملف $colors
تجزئة مع واحد (!) الاستعلام ثم عرضها على النحو التالي $colors[$product->getColor()]
ربما يكون أسرع من تحديد كل قيمة في الحلقة أو إنشاء روابط إضافية ، ولكنه لا يعمل لفرز المجموعة :(