سؤال

هل هناك طريقة لفعل شيء بسيط كما هو الحال في magento2؟

وظيفة الاتصال مثل هذه في الماجنتو 2

$model = Mage::getModel('cms/page');
هل كانت مفيدة؟

المحلول

Magento يشجع بشكل صارم على استخدام ObjectManager مباشرة.يوفر فئات الخدمة التي تجرخصها بعيدا عن جميع السيناريوهات.

لجميع غير الحقن (النماذج) عليك استخدام المصنع: giveacodicetagpre.

كل ما عليك فعله هو أن تسأل مصنع النموذج المطلوب في المنشئ.سيتم إنشاؤها تلقائيا عند تشغيل Magento أو برنامج التحويل البرمجي.

نصائح أخرى

يمكنك القيام بذلك مثل هذا: giveacodicetagpre.

ولكن عليك التأكد من وجود عضو في الأجيال.

في معظم الفئات، فيجب عليه، ولكن إذا لم يدنها في المنشئ.مثل هذا: giveacodicetagpre.

[تحرير سنة واحدة لاحقا]
حتى لو كانت الإجابة أعلاه تعمل، فهي ليست أفضل الممارسات.للحصول على الطريقة الصحيحة للقيام بذلك، انظر إجابة أنتون.

من الناحية الفنية إذا كان لديك مثيل لـ \Magento\Framework\ObjectManager تستطيع الاتصال create ل get وهذا سوف يعطيك الشيء الذي تريده.لكن الأمر يعتمد حقًا على المكان الذي تريد استخدام هذا فيه مع تحول Magento 2 نحوه حقن التبعية عبر المنشئ.

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