ম্যাজেন্টো 2 পণ্য আইডি ব্যতীত সমস্ত পণ্যের বৈশিষ্ট্য পান


12

আমি যে সমস্ত পণ্য উপলব্ধ রয়েছে তার সমস্ত বৈশিষ্ট্য পুনরুদ্ধার করতে চাই , তারপরে এটিকে আমার নির্বাচিত বিকল্প ক্ষেত্রের জন্য নাম ও মান রূপান্তর করুন। ম্যাজেন্টো 1 এ আমি এটি এটি অর্জন করতে পারি:

public function getMagentoAttributes()
{
    $values[] = array(
        'value' => '',
        'label' => 'Pick Product Attribute'
    );

    $categories = Mage::getResourceModel('catalog/product_attribute_collection')->getItems();

    foreach ($categories as $category) {
        if ($category->getFrontendLabel() != '') {
            $label = $category->getFrontendLabel();
        } else {
            $label = $category->getAttributecode();
        }

        $values[] = array(
            'value' => $category->getAttributecode(),
            'label' => $label
        );
    }
    return $values;
}

একই কাজ করার জন্য ম্যাজেন্টো 2 তে কি উপায় আছে?


আমি "রোনাকচৌহান" অনুসারে কোডটি ব্যবহার করেছি এটি আমার ব্লক ফাইলে ঠিকঠাক কাজ করছে তবে আমি কিছু সমস্যার মুখোমুখি হচ্ছি আমার সহায়তা প্রয়োজন কারণ আমি তার দৃশ্যমানতা অনুযায়ী বৈশিষ্ট্যগুলি ফিল্টার করতে অক্ষম অর্থাৎ আমার এমন বৈশিষ্ট্যগুলির প্রয়োজন যাগুলির স্থিতিটি "দৃশ্যমান = সেট করা আছে" > হ্যাঁ "অ্যাডমিনে ... যে কোনও সাহায্যের প্রশংসা করা হবে ... প্রোডাক্ট অ্যাট্রিবিউটের সংগ্রহ শ্রেণি পাওয়ার জন্য আমার কোডটি প্রোডাক্টলিস্টের প্রসারিত \ ম্যাজেন্টো \ ফ্রেমওয়ার্ক \ ভিউ \ এলিমেন্ট \ টেমপ্লেট {সুরক্ষিত $ _attributeFactory; পাবলিক ফাংশন __ কনস্ট্রাক্ট (\ ম্যাজেন্টো \ ক্যাটালগ \ মডেল \ রিসোর্সমোডেল \ ইভা \ অ্যাট্রিবিউট $ অ্যাট্রিবিউট ফ্যাক্টরি) {পিতামহ :: __ কনস্ট্রাক্ট ($ প্রসঙ্গ); $ এটি -> _ বৈশিষ্ট্য
গুরজিৎ সিং

উত্তর:


10
protected $_attributeFactory;

 public function __construct(
    ....
    \Magento\Catalog\Model\ResourceModel\Eav\Attribute $attributeFactory,
    ....
) {
    ....
    $this->_attributeFactory = $attributeFactory;
    ....
}

public function <func_name>()
{
    $attributeInfo = $this->_attributeFactory->getCollection();

   foreach($attributeInfo as $attributes)
   {
        $attributeId = $attributes->getAttributeId();
        // You can get all fields of attribute here
   }
}

এখানে আপনার কাছে পুরো গুণাবলি রয়েছে, আপনি এটি আপনার প্রয়োজন অনুযায়ী ফিল্টার করতে পারেন।


বৈশিষ্ট্যটির নাম এবং আইডি কীভাবে পাবেন?
সরল লোক

ব্যবহার করে foreachআপনি getAttributeId()পাশাপাশি পেতে পারেনgetAttributeName()
রোনাক চৌহান

আপডেট হওয়া উত্তরটি চেক করুন
রোনাক চৌহান

getAttributeName প্রিন্ট ফাঁকা
সহজ লোক

1
echo "<pre>"; print_r($attributes);exit;ভবিষ্যদ্বাণীতে এবং চেক এ এটি ব্যবহার করুন
রোনাক চৌহান

8

আর একটি ধারণা আমাদের পরিষেবা চুক্তি স্তর দিয়ে চেষ্টা করা উচিত ।

Magento\Eav\Api\AttributeRepositoryInterfaceইভা বৈশিষ্ট্য পেতে ব্যবহার করুন ।

ইতিমধ্যে এখানে আমার একটি উত্তর রয়েছে: /magento//a/161426/33057

উদাহরণ স্বরূপ:

    $searchCriteria = $this->searchCriteriaBuilder->create();
    $attributeRepository = $this->attributeRepository->getList(
        'catalog_product',
        $searchCriteria
    );

    foreach ($attributeRepository->getItems() as $items) {
        $items->getAttributeCode();
        $items->getFrontendLabel();
    }

দ্রষ্টব্য:getList পদ্ধতিতে সত্তা টাইপ কোডের জন্য , আমরা eav_entity_typeসারণিতে খুঁজে পেতে পারি ।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.