Magento2: मेरे कस्टम मॉड्यूल में उत्पाद आईडी कैसे प्राप्त करें


11

मैं magento2 के लिए नया हूं और वर्तमान में मैं एक कस्टम मॉड्यूल का निर्माण कर रहा हूं और मैं ID/SKUकैटलॉग से उत्पाद प्राप्त करना चाहता हूं । मैं ब्लॉक फ़ोल्डर में स्थित फ़ंक्शन का उपयोग करके कॉल करने का प्रयास कर रहा हूं। कृपया सलाह दें!

जवाबों:


36

इसे इस्तेमाल करे:

<?php 
    $objectManager = \Magento\Framework\App\ObjectManager::getInstance();
    $product = $objectManager->get('Magento\Framework\Registry')->registry('current_product');//get current product
    echo $product->getId();
    echo $product->getName();
?>

या

अपनी ब्लॉक फ़ाइल में bellow कोड जोड़ें।

उदाहरण के लिए app/code/AR/CustomModule/Block/CustomBlock.php

<?php
namespace AR\CustomModule\Block;
class CustomBlock extends \Magento\Framework\View\Element\Template
{
    protected $_registry;

    public function __construct(
        \Magento\Backend\Block\Template\Context $context,       
        \Magento\Framework\Registry $registry,
        array $data = []
    )
    {       
        $this->_registry = $registry;
        parent::__construct($context, $data);
    }

    public function _prepareLayout()
    {
        return parent::_prepareLayout();
    }

    public function getCurrentCategory()
    {       
        return $this->_registry->registry('current_category');
    }

    public function getCurrentProduct()
    {       
        return $this->_registry->registry('current_product');
    }   

}
?>

अपने टेम्पलेट (custom.phtml) फ़ाइल में वर्तमान उत्पाद डेटा प्रिंट करना

if ($currentProduct = $block->getCurrentProduct()) {
    echo $currentProduct->getName() . '<br />';
    echo $currentProduct->getSku() . '<br />';
    echo $currentProduct->getId() . '<br />';       
}

यह एक आकर्षण की तरह काम करता है! क्या आपको इस रजिस्ट्री के बारे में समझाने का मन है ?? वहाँ इस क्षेत्र पर एक डेवलपर के गाइड है ??
मिंग

2
क्या रजिस्ट्री के अलावा उत्पाद आईडी प्राप्त करने के लिए कोई वैकल्पिक विधि है?
सुशीवम

0
<?php 
$objectManager = \Magento\Framework\App\ObjectManager::getInstance();
$product = $objectManager->get('Magento\Framework\Registry')->registry('current_product');//get current product
echo $product->getId();
echo $product->getName();
?>

यह मेरे लिए काम करता है।


सीधे ऑब्जेक्ट मैनेजर का उपयोग न करें
लोरेंजो

0
<?php
     $objectManager = \Magento\Framework\App\ObjectManager::getInstance();
     $productid = $this->getRequest()->getParam('id');                                       
     $product = $objectManager->create('Magento\Catalog\Model\Product')->load($productid);
     echo $product;
?>                                                                          

वर्तमान उत्पाद आईडी प्राप्त करने के लिए इस कोड का उपयोग करें


0

तुम कोशिश कर सकते हो $product = $this->abstractProduct->getProduct();

साथ में \Magento\Catalog\Block\Product\AbstractProduct $abstractProduct

मेरे लिए काम किया :)


उत्पाद सूची पृष्ठ के लिए काम नहीं कर रहा है
अमित नारानीवाल

-3

इसे इस्तेमाल करे:

<?php  
   $productId = 8;
   $objectManager =  \Magento\Framework\App\ObjectManager::getInstance();
   $currentproduct = $objectManager->create('Magento\Catalog\Model\Product')->load($productId);
   echo $currentproduct->getName(); 
?>

उत्तर के लिए धन्यवाद! मुझे लगता है कि मैंने अपना प्रश्न गलत तरीके से लिया है। मेरा वर्तमान मॉड्यूल उत्पाद के लिए जानकारी पर एक ऐड है, मेरा वास्तव में क्या मतलब है कि मुझे वर्तमान पृष्ठ उत्पाद की आईडी कैसे मिलती है? उदाहरण के लिए, "स्थानीय होस्ट / परीक्षण / उत्पाद-A.html" मैं कैसे इस विशेष उत्पाद के लिए आईडी प्राप्त कर सकते हैं में
मिंग

मुझे क्लास 'Magento \ फ्रेमवर्क \ App \
ObjectManager

im मेरे कस्टम मॉडल में प्राप्त करने की कोशिश कर रहा है: $ productId = 1; $ objectManager = \ Magento \ Framework \ App \ ObjectManager :: getInstance (); $ currentproduct = $ objectManager-> create ('Vendor \ Module \ Model \ Queue') -> लोड ($ productId); echo '<pre>'; print_r ($ currentproduct-> getEntityId ()); die; मुझे null पर प्रेषण () के लिए कॉल मिलता है .. सहायता के लिए
सुशीम

गतिशील रूप से $ productId = 8 कैसे प्राप्त करें;
सुशीवम १३
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.