Magento 2で現在のストアIDを取得する方法


  1. ブロッククラスを使用する方法: 以下のコード例は、ブロッククラスを使用して現在のストアIDを取得する方法を示しています。
<?php
namespace Vendor\Module\Block;
use Magento\Framework\View\Element\Template;
class YourBlock extends Template
{
    protected $_storeManager;
    public function __construct(
        \Magento\Backend\Block\Template\Context $context,
        \Magento\Store\Model\StoreManagerInterface $storeManager,
        array $data = []
    ) {
        $this->_storeManager = $storeManager;
        parent::__construct($context, $data);
    }
    public function getCurrentStoreId()
    {
        return $this->_storeManager->getStore()->getId();
    }
}

上記の例では、getCurrentStoreIdメソッドを使用して現在のストアIDを取得しています。このメソッドをブロッククラス内で使用することで、任意のテンプレートファイルで現在のストアIDを表示できます。

  1. 直接オブジェクトマネージャを使用する方法: 以下のコード例は、オブジェクトマネージャを使用して現在のストアIDを取得する方法を示しています。
<?php
$objectManager = \Magento\Framework\App\ObjectManager::getInstance();
$storeManager = $objectManager->get('\Magento\Store\Model\StoreManagerInterface');
$currentStoreId = $storeManager->getStore()->getId();

上記の例では、$currentStoreId変数に現在のストアIDが格納されます。この方法は、ブロッククラスの外部でストアIDを取得する場合に便利ですが、オブジェクトマネージャを直接使用することは推奨されません。

これらの方法を使用することで、Magento 2で現在のストアIDを取得することができます。自分の開発環境や要件に合わせて最適な方法を選択してください。