সাধারণ ধারণাটি অনুরোধ প্যারামিটারের মাধ্যমে নির্বাচিত সুযোগটি পাস করা pass
আমি মনে করি পণ্য সম্পাদনা ক্রিয়ায় আপনার অনুরূপ কোডটি ব্যবহার করা উচিত:
/** @var \Magento\Store\Model\StoreManagerInterface $storeManager */
$storeManager = $this->_objectManager->get('Magento\Store\Model\StoreManagerInterface');
$storeId = (int) $this->getRequest()->getParam('store', 0);
$store = $storeManager->getStore($storeId);
$storeManager->setCurrentStore($store->getCode());
এই ক্ষেত্রে $store->getWebsiteId()
আসল (নির্বাচিত) ওয়েবসাইট আইডি হওয়া উচিত। তবে এটি কেবল তখনই করা যেতে পারে আপনি স্টোর ব্লকটি ব্যবহার করেন যা একটি স্ট্যান্ডার্ড ম্যাজেন্টো ব্লক (স্টোরের সুযোগ নির্বাচন করতে) হিসাবে একইভাবে কাজ করে:
আমি যখন ডিফল্ট স্টোর ভিউ (আইডি == 1) নির্বাচন করি তখন উদাহরণে আমার ফলাফল এখানে রয়েছে:
এবং এখানে ডিফল্ট গ্লোবাল স্কোপের জন্য রয়েছে ( সমস্ত স্টোর দর্শন , ওয়েবসাইট আইডি 0):
হালনাগাদ:
আপনি সহায়ক হিসাবে এই জাতীয় একটি পদ্ধতি যুক্ত করতে পারেন এবং আপনি যেখানে চান সেখানে এটি ব্যবহার করতে পারেন:
/**
* @var \Magento\Framework\App\State
*/
protected $state;
/**
* @var \Magento\Store\Model\StoreManagerInterface
*/
protected $storeManager;
/**
* Data constructor.
* @param Context $context
* @param \Magento\Framework\App\State $state
* @param \Magento\Store\Model\StoreManagerInterface $storeManager
*/
public function __construct(
Context $context,
\Magento\Framework\App\State $state,
\Magento\Store\Model\StoreManagerInterface $storeManager
) {
parent::__construct($context);
$this->state = $state;
$this->storeManager = $storeManager;
}
/**
* @return int
*/
public function resolveCurrentWebsiteId()
{
if ($this->state->getAreaCode() == \Magento\Framework\App\Area::AREA_ADMINHTML) {
// in admin area
/** @var \Magento\Framework\App\RequestInterface $request */
$request = $this->_request;
$storeId = (int) $request->getParam('store', 0);
} else {
// frontend area
$storeId = true; // get current store from the store resolver
}
$store = $this->storeManager->getStore($storeId);
$websiteId = $store->getWebsiteId();
return $websiteId;
}
ফলাফলটি এমন হওয়া উচিত:
স্কোপ সিলেক্টর ব্যাকএন্ড - 0
স্কোপ সিলেক্টরের সাথে ব্যাকড - নির্বাচিত ওয়েবসাইট আইডি বা 0 টি না নির্বাচিত হলে (সমস্ত স্টোরের দর্শন)
সামনের - বর্তমান ওয়েবসাইট আইডি
আপনি যদি সামনের দিকে শর্ট-ওয়ে সন্ধান করছেন:
আপনি Magento\Store\Model\StoreResolver
এই উদ্দেশ্যে ক্লাসটি ব্যবহার করতে পারেন :
/**
* @var \Magento\Store\Model\StoreResolver
*/
private $storeResolver;
/**
* @param \Magento\Store\Model\StoreResolver $storeResolver
*/
public function __construct(
\Magento\Store\Model\StoreResolver $storeResolver
) {
$this->storeResolver = $storeResolver;
}
/**
* Returns the current store id, if it can be detected or default store id
*
* @return int|string
*/
public function getCurrentStoreId()
{
return $this->storeResolver->getCurrentStoreId();
}
এটি সামনের অংশে বর্তমানে নির্বাচিত স্টোর ভিউটি সঠিকভাবে সনাক্ত করে তবে প্রশাসক অঞ্চলের পক্ষে অকেজো।