ম্যাজেন্টো 2 - কীভাবে পণ্যের বৈশিষ্ট্য পাবেন?


উত্তর:


15

আর একটি উপায়, কাস্টম বৈশিষ্ট্যের জন্য: আমরা সহজভাবে getCustomAttribute () ব্যবহার করে মানটি পেতে পারি

if (null !== $product->getCustomAttribute('your_custom_attribute')) {
   echo $product->getCustomAttribute('your_custom_attribute')->getValue();
}

19

ম্যাজেন্টোতে সেরা অনুশীলন হ'ল এটি এক্সএমএল এর মাধ্যমে করা।

একটি স্ট্যান্ডার্ড বৈশিষ্ট্য পেতে আপনি catalog_product_view.xmlউদাহরণস্বরূপ এ জাতীয় কিছু করুন:

<referenceContainer name="product.info.main">
    <block class="Magento\Catalog\Block\Product\View\Description" name="product.info.brand" template="product/view/attribute.phtml" before="-">
        <arguments>
            <argument name="at_call" xsi:type="string">getBrand</argument>
            <argument name="at_code" xsi:type="string">brand</argument>
            <argument name="css_class" xsi:type="string">brand</argument>
            <argument name="at_label" xsi:type="string">none</argument>
            <argument name="add_attribute" xsi:type="string">itemprop="brand"</argument>
        </arguments>
    </block>
</referenceContainer>

এটি একটি ইনপুট অ্যাট্রিবিউট বা টেক্সটরিয়ার মান পাবে। আপনার যদি ড্রপডাউন থাকে তবে আপনার পাঠ্য প্রকারটি ব্যবহার করা উচিত, সুতরাং যুক্তিগুলির তালিকায় এই লাইনটি যুক্ত করুন:

<argument name="at_type" xsi:type="string">text</argument>

কোনও অ্যাট্রিবিউট পেতে ফাইল তৈরি বা কোনও পিএইচপি কোড লেখার দরকার নেই। এইভাবে আপনি কোনও বৈশিষ্ট্যের জন্য একই ডিফল্ট পিএইচপি কোড ব্যবহার করবেন এবং প্রয়োজনে আপনাকে কেবল একবার এটি পরিবর্তন করতে হবে।


3
আপনার সমাধানের মতো, পরিবর্তিত <রেফারেন্সলক <রেফারেন্সকন্টেইনার এবং এটি "product.info.main" হিসাবে কাজ করেছে এটি একটি ধারক :)
ডিভটাইপ

12

আমার সমস্যার সমাধান আমার ছিল:

$product = $this->productRepository->getById($product);
$attr = $product->getData('status');

7
$objectManager = \Magento\Framework\App\ObjectManager::getInstance(); 
$_product = $objectManager->get('Magento\Catalog\Model\Product')->load($product_id);
$_product->getData('attr_code');

আশা করি এটা সাহায্য করবে


1
দয়া করে, "ম্যাজেন্টো \ ক্যাটালগ \ ব্লক \ পণ্য \ দেখুন \ বিবরণ" এর মতো একটি ব্লক শ্রেণি ব্যবহার করার চেষ্টা করুন তবে আমি সর্বশেষ অবলম্বন না করে Magento 2 এ অবজেক্ট ম্যানেজারটি ব্যবহার না করার পরামর্শ দেব।
ডায়নামাইট

5

পিটিএইচএমএল-ফাইলগুলির অন্য একটি উপায়:

echo $this->helper('Magento\Catalog\Helper\Output')->productAttribute($block->getProduct(), $block->getProduct()->getDescription(), 'description')

যেমন হিসাবে: vendor/magento/module-catalog/view/frontend/templates/product/view/description.phtml


এটি প্রায়শই সর্বদা নিরুৎসাহিত করা অবজেক্ট ম্যানেজার ব্যবহার করার চেয়ে এটি করার একটি ভাল উপায়। +1
ডায়নামাইট

আমি খুঁজে পেয়েছি যে সেরা সমাধান। +1: ডি
জেহ্ল্লাউ

1

ক্যাটালগ_প্রডাক্ট_ভিউ.এক্সএমএল এর ভিতরে একটি ব্লক তৈরি করা এবং আপনি যে কোনও ধারক চাইবেন তার ভিতরে যুক্ত করুন বা এর চারপাশে একটি ধারক তৈরি করুন।

<!-- Get a attribute -->
<block class="Magento\Catalog\Block\Product\View\Description" name="product.attributes.Height" template="product/view/attribute.phtml" before="-">
    <arguments>
        <argument name="at_call" xsi:type="string">getHeight</argument>
        <argument name="at_code" xsi:type="string">height</argument>
        <argument name="css_class" xsi:type="string">height</argument>
        <argument name="at_label" xsi:type="string">none</argument>
        <argument name="add_attribute" xsi:type="string">itemprop="Height"</argument>
    </arguments>
</block>
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.