Magento: السمة تُرجع دائمًا القيمة الافتراضية في عرض الكتالوج ، ويعمل بشكل جيد في عرض المنتج
-
26-09-2019 - |
سؤال
لقد قمت بإنشاء سمة جديدة نعم/لا للمنتجات. لقد قمت بتوسيع نموذج المنتج للقيام ببعض المنطق المخصص والوظائف المخصصة تعمل في كل مكان.
عندما حاولت في البداية الحصول على قيمة السمة المخصصة ، واجهت بعض المشكلات. لم يكن Magento تحميله من أجلي ، لذا فإن المكالمات إلى $ product-> getMyatTributEname () لم تفعل شيئًا. في وجهات نظر المنتج ، حصلت على العمل مع هذه الوظيفة الإضافية:
public function getAttrVal($attr_name)
{
return $this->getResource()->getAttribute($attr_name)->getFrontend()->getValue($this);
}
لذلك عملت بشكل رائع عند عرض منتج على الواجهة الأمامية. سوف يجلب القيمة المخصصة إذا تم تعيينها ، أو الافتراضي إذا لم يكن كذلك.
عندما أشاهد أي فئة (شبكة جميع المنتجات في تلك الفئة) ، يتم تنفيذ نفس الرمز الدقيق. لكن وظيفة getAttrval () تُرجع دائمًا القيمة الافتراضية ، حتى لو قمت بتعيين هذه القيمة بشكل صريح لمنتجي.
لا يمكنني ، على مدى الحياة ، معرفة سبب تحميل السمة بشكل صحيح في عرض المنتج ، لكن طريقة عرض الفئة تستمتع دائمًا بالقيمة الافتراضية ، على الرغم من تشغيل نفس الرمز الدقيق. أي أفكار؟
المحلول
نظرًا لأن Magento يستخدم نموذج EAV لسمات الكتالوج القابلة للتمديد ، فلا يجوز نقل كل سمة إلى كل صفحة. جرب العبث بـ "المعروض في الكتالوج" والمتغيرات الأخرى ذات الصلة على السمة ، وقد يصلح مشكلتك. إذا لم يكن الأمر كذلك ، فقل ذلك ويمكننا تجربة أشياء أخرى.
امل ان يساعد!
شكرا يا جو