যদিও অন্যান্য উত্তরগুলি সঠিক, সেগুলিও প্রস্তাবিত / যথাযথ সমাধান নয়।
ম্যাজেন্টো ২-তে অবজেক্টম্যানেজারটি ব্যবহার করা সম্পূর্ণভাবে নিষিদ্ধ So সুতরাং দয়া করে এই সমাধানের উপর নির্ভর করবেন না, পরিবর্তে এটি অর্জনের জন্য যথাযথ ডিআই ব্যবহার করুন। : Magento 2 দ্বি কীভাবে ব্যবহার করবেন তা জানতে, এই সম্পদ দেখতে http://devdocs.magento.com/guides/v2.0/extension-dev-guide/depend-inj.html
অ্যাবস্ট্রাকভিউ প্রসারিত করার প্রয়োজন নেই। আপনি যদি অ্যাবস্ট্রাকভিউতে মূল ফাংশনটি দেখে থাকেন তবে দেখতে পাবেন পণ্যটি আনতে ম্যাজেন্টো রেজিস্ট্রি ব্যবহার করেছিল। এটি করার জন্য আপনার নির্দিষ্ট শ্রেণি বাড়াতে হবে না, কেবল আপনার নির্মাণকারীর মধ্যে ম্যাজেন্টো \ ফ্রেমওয়ার্ক \ রেজিস্ট্রি ইনজেক্ট করুন এবং "পণ্য" রেজিস্ট্রি আইটেমটির জন্য অনুরোধ করুন।
সম্পূর্ণ কোড উদাহরণ:
<?php
// Example = Module namespace, Module = module name, rest of the namespace is just for example only, change this to whatever it is in your case.
namespace Example\Module\Block\Frontend\Catalog\Product\General;
use Magento\Catalog\Model\Product;
use Magento\Framework\Exception\LocalizedException;
use Magento\Framework\Registry;
use Magento\Framework\View\Element\Template;
class Information extends Template
{
/**
* @var Registry
*/
protected $registry;
/**
* @var Product
*/
private $product;
public function __construct(Template\Context $context,
Registry $registry,
array $data)
{
$this->registry = $registry;
parent::__construct($context, $data);
}
/**
* @return Product
*/
private function getProduct()
{
if (is_null($this->product)) {
$this->product = $this->registry->registry('product');
if (!$this->product->getId()) {
throw new LocalizedException(__('Failed to initialize product'));
}
}
return $this->product;
}
public function getProductName()
{
return $this->getProduct()->getName();
}
}
getProduct()
মধ্যেMagento\Catalog\Block\Product\View