我的 magento 2 商店中有多个网站。 我正在创建自定义代码,因此我需要使用网站 ID 访问网站 Url,我尝试了很多不同的方式,但我无法获取 url。
$this->_objectManager->getWebsite(1)->getDefaultStore()->getBaseUrl();
我也在尝试另一种方式是:
public function __construct(
\Magento\Framework\App\Config\ScopeConfigInterface $scopeConfig,
\Linksture\ApplyCoupon\Model\ApplyCouponFactory $applycouponFactory,
\Magento\SalesRule\Model\ResourceModel\Rule\CollectionFactory $collectionFactory,
\Magento\Store\Model\StoreManagerInterface $storeManager,
\Magento\SalesRule\Model\ResourceModel\Coupon\CollectionFactory $couponcollectionFactory
) {
$this->_scopeConfig = $scopeConfig;
$this->_applycouponFactory = $applycouponFactory;
$this->_collectionFactory = $collectionFactory;
$this->_storeManager = $storeManager;
$this->_couponcollectionFactory = $couponcollectionFactory;
}
public function execute(\Magento\Framework\Event\Observer $observer)
{
echo $this->_storeManager->getWebsite(1)->getDefaultStore()->getBaseUrl();
}
在 magento 1.x 中,使用如下。
Mage::app()->getWebsite(1)->getDefaultStore()->getBaseUrl();
最佳答案
假设你有多个网站,一个网站在多个商店下,你得到所有的baseUrl,websiteId和storeId。
public function __construct(
\Magento\Framework\ObjectManagerInterface $objectManager
) {
$this->_objectManager = $objectManager;
}
public function execute(\Magento\Framework\Event\Observer $observer){
$storeManager = $this->_objectManager->get('Magento\Store\Model\StoreManagerInterface');
$websites = $storeManager->getWebsites();
foreach($websites as $website){
foreach($website->getStores() as $store){
$wedsiteId = $website->getId();
$storeObj = $storeManager->getStore($store);
$storeId = $storeObj->getId();
$url = $storeObj->getBaseUrl(\Magento\Framework\UrlInterface::URL_TYPE_WEB);
}
}
}
关于php - Magento 2 : How to get website Url by website Id in Observer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34563076/