Magento 2 StoreManagerInterface সংকলনের প্রসঙ্গে ইতিমধ্যে উপস্থিত রয়েছে


15

আমি আমার এক্সটেনশনে এই ত্রুটিটি পাচ্ছি।

প্যাকেজনাম \ মডিউলনাম \ ব্লক
class বর্গের মধ্যে বর্ধিত ভুল নির্ভরতা প্যাকেজনাম \ মডিউলনাম \ ব্লক / /var/www/html/app/code/PackageName/ModuleName/Block/Enhanced.php \ Magento \ Store \ Storeanage Store Store এ উপস্থিত রয়েছে প্রসঙ্গ অবজেক্ট

 public function __construct(
    \Magento\Framework\View\Element\Template\Context $context,
    \Magento\Catalog\Model\Session $catalogSession,
    \Magento\Store\Model\StoreManagerInterface $storeManager,        
    array $data = []

)
{
    parent::__construct($context, $data);
    $this->_catalogSession = $catalogSession;
    $this->_storeManager = $storeManager;      
}

উত্তর:


12

\Magento\Store\Model\StoreManagerInterfaceআপনার কনস্ট্রাক্টরে আপনাকে ইনজেকশনের দরকার নেই কারণ পিতামাতার ক্লাসটি ইতিমধ্যে এটি করে।

আমি ধরে নিলাম আপনার ব্লকটি প্রসারিত হয়েছে Magento\Framework\View\Element\Templateযার মধ্যে ইতিমধ্যে নিম্নলিখিত কোড রয়েছে:

protected $_storeManager;

public function __construct(Template\Context $context, array $data = [])
{
    $this->validator = $context->getValidator();
    $this->resolver = $context->getResolver();
    $this->_filesystem = $context->getFilesystem();
    $this->templateEnginePool = $context->getEnginePool();
    $this->_storeManager = $context->getStoreManager();
    $this->_appState = $context->getAppState();
    $this->templateContext = $this;
    $this->pageConfig = $context->getPageConfig();
    parent::__construct($context, $data);
}

সুতরাং আপনি আপনার কোডটি এর সাথে প্রতিস্থাপন করতে পারেন:

public function __construct(
    \Magento\Framework\View\Element\Template\Context $context,
    \Magento\Catalog\Model\Session $catalogSession,   
    array $data = []

)
{
    parent::__construct($context, $data);
    $this->_catalogSession = $catalogSession;
}

3
আহ ... 13 সেকেন্ড খুব দেরি।
মারিয়াস

@ মারিয়াস হা হা। এখনও দুজন নেটিভ
ইংলিশ স্পিকার

@ মারিয়াস এবং রাফেল +2। এত দ্রুত.
খোয়া ট্রুংদিনহ

5

\Magento\Store\Model\StoreManagerInterface $storeManagerআপনার ক্লাসে নির্ভরতা হিসাবে যুক্ত করার দরকার নেই ।
আপনি ইতিমধ্যে একজন inplementation এক্সেস আছে StoreManagerInterfaceমধ্যে Magento\Framework\View\Element\Template\Contextবর্গ।
এই দেখুন

সুতরাং আপনি আপনার নির্মাতাকে এটির মতো দেখতে পারেন:

public function __construct(
    \Magento\Framework\View\Element\Template\Context $context,
    \Magento\Catalog\Model\Session $catalogSession,
    array $data = []

)
{
    parent::__construct($context, $data);
    $this->_catalogSession = $catalogSession;
}

এবং আপনি এখনও এর storeManagerমতো সদস্য ভেরিয়েবল অ্যাক্সেস করতে সক্ষম হবেন $this->_storeManager


5

নিম্নলিখিত পদ্ধতি Contextঅবজেক্টে উপলব্ধ ( \Magento\Framework\View\Element\Template\Context)

print_r(get_class_methods($context))

Array
(
    [0] => __construct
    [1] => getResolver
    [2] => getValidator
    [3] => getFilesystem
    [4] => getLogger
    [5] => getViewFileSystem
    [6] => getEnginePool
    [7] => getAppState
    [8] => getStoreManager
    [9] => getPageConfig
    [10] => getCache
    [11] => getDesignPackage
    [12] => getEventManager
    [13] => getLayout
    [14] => getRequest
    [15] => getSession
    [16] => getSidResolver
    [17] => getScopeConfig
    [18] => getInlineTranslation
    [19] => getUrlBuilder
    [20] => getAssetRepository
    [21] => getViewConfig
    [22] => getCacheState
    [23] => getEscaper
    [24] => getFilterManager
    [25] => getLocaleDate
)
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.