سؤال

في ماجنتو 2 ، فهمت أنه يتعين علينا استخدام المستودعات بدلا من المجموعات.ما لا أفهمه هو كيفية إضافة سمات مخصصة إلى المستودع.

إذا كنت تفعل شيئا من هذا القبيل:

    $searchCriteria = $this->searchCriteriaBuilder
        ->addFilter(ProductInterface::STATUS, Status::STATUS_ENABLED)
        ->addFilter(ProductInterface::VISIBILITY, array(Visibility::VISIBILITY_IN_SEARCH, Visibility::VISIBILITY_BOTH), 'in')
        ->create();

    $products = $this->productRepositoryInterface->getList($searchCriteria);

لدي قائمة بالمنتجات ، لكن ليس لدي كل السمات التي أحتاجها.كيف يمكن تحقيق ذلك?شيء من هذا القبيل addAttributeToSelect في الماجنتو 1.

هل كانت مفيدة؟

المحلول

لقد فهمت أنه يتعين علينا استخدام المستودعات بدلا من المجموعات

ليس بالضرورة;

أفيك ، عند استخدام المستودعات التي تلتزم عقود خدمة الماجنتو 2 ، وهو ما يعني أن واجهات الخدمة واجهات البيانات يتم تعريفها (ولكن الموسعة من قبل وحدات طرف ثالث).

مما يجعل من الممكن في وقت التشغيل لتغيير نتيجة المكالمة إلى getList() أن طريقة مستودع تنتهك هذا العقد.

لاسترداد السمات التي تحتاجها في وقت التشغيل ، يمكنك استخدام المجموعات.الماجنتو 2 الإطار نفسه يجعل الاستخدام الكثيف للمجموعات.

وإلا يجب عليك تنفيذ وحدة نمطية تحدد واجهة بيانات جديدة (أي مجموعة السمات الجديدة) لهذا الكيان.

آمل أن يلقي بعض الضوء.

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