Magento 2 - 如何从外部应用程序获取currentStoreId()?

时间:2016-08-03 11:43:51

标签: magento-2.0

我在Magento Stack Exchange中提出了这个问题,但没有得到任何人的评论/回答。所以我删除了那里的问题并在SO中提出同样的问题。

所以,我有一个外部应用程序,它将管理员用户登录到管理面板。准系统结构如下:

 <?php

use Magento\Framework\App\Bootstrap;

require __DIR__ . '/app/bootstrap.php';

class TestApp extends \Magento\Framework\App\Http implements \Magento\Framework\AppInterface {

    protected $_resource = null;
    protected $storeManager = null;

    public function __construct(
    //ActionContext $context,
    \Magento\Framework\App\ResourceConnection $resource, \Magento\Store\Model\StoreManagerInterface $storeManager, \Magento\Customer\Model\CustomerFactory $customerFactory
    // \Magento\Catalog\Model\Session $catalogSession,
    //    \Magento\Framework\App\State $state
    ) {
        $this->_resource = $resource;
        $this->storeManager = $storeManager;
    }

    public function launch() {
        $currentStoreID = $this->storeManager->getStore()->getStoreId();
    }

}

$bootstrap = Bootstrap::create(BP, $_SERVER);
$bootstrap = \Magento\Framework\App\Bootstrap::create(BP, $_SERVER);
/** @var \Magento\Framework\App\Http $app */
$app = $bootstrap->createApplication('TestApp');
$bootstrap->run($app);

我已经删除了实际的登录部分,因为这超出了这个问题的范围。

如果我拨打$this->storeManager->getStore()->getStoreId();,它会返回默认的商店ID,这不是我想要的。此应用程序驻留在子存储下(不确定这是否是正确的术语),我想要当前的商店ID,而不是默认的商店ID。

跟进后,我发现此closed issue用户被告知使用\Magento\Store\Model\StoreResolver::getCurrentStoreId$this->storeManager内部有storeResolver,但这是受保护的属性,因此无法访问。

我的问题是,如何获取当前商店ID而不是默认商店ID?

0 个答案:

没有答案