Tôi muốn hiển thị số điện thoại được lưu trong quản trị viên magento ở lối vào trong magento 2.
Giống như trong magento 1.9 giống như trong
$storePhone = Mage::getStoreConfig('general/store_information/phone');
Tôi muốn hiển thị số điện thoại được lưu trong quản trị viên magento ở lối vào trong magento 2.
Giống như trong magento 1.9 giống như trong
$storePhone = Mage::getStoreConfig('general/store_information/phone');
Câu trả lời:
Bạn sẽ phải sử dụng Magento/Store/Model/Information
lớp và gọi getStoreInformationObject()
phương thức cho việc đó.
Bạn sẽ phải đưa lớp này vào khối tùy chỉnh của mình để có thể sử dụng lớp đó trong mẫu của bạn.
protected $_storeInfo;
public function __construct(
....
\Magento\Store\Model\Information $storeInfo,
....
) {
...
$this->_storeInfo = $storeInfo;
....
}
Sau đó tạo một phương thức tùy chỉnh để lấy số điện thoại:
public function getPhoneNumber()
{
return $this->_storeInfo->getStoreInformationObject(Store $store)->getPhone();
}
Vì vậy, trong mẫu của bạn, bạn có thể gọi:
$block->getPhoneNumber();
Bạn không bao giờ nên sử dụng trình quản lý đối tượng trực tiếp (xem tại sao ở đây: Magento 2: sử dụng hay không sử dụng ObjectManager trực tiếp? )
$objectManager = \Magento\Framework\App\ObjectManager::getInstance();
$storeInformation = $objectManager->create('Magento/Store/Model/Information');
$storeInfo = $storeInformation->getStoreInformationObject($store);
Sau đó, bạn có thể nhận được điện thoại bằng cách gọi:
$phone = $storeInfo->getPhone();
$objectManager = \Magento\Framework\App\ObjectManager::getInstance();
$storeInformation = $objectManager->create('Magento\Store\Model\Information');
$store = $objectManager->create('Magento\Store\Model\Store');
$storeInfo = $storeInformation->getStoreInformationObject($store);
$phone = $storeInfo->getPhone();
bạn cần tiêm một thể hiện \Magento\Framework\App\Config\ScopeConfigInterface
trong khối của bạn.
$protected $scopeConfig;
public function __construct(
....
\Magento\Framework\App\Config\ScopeConfigInterface $scopeConfig,
....
) {
...
$this->scopeConfig = $scopeConfig;
....
}
Sau đó tạo phương thức getStorePhone()
public function getStorePhone()
{
return $this->scopeConfig->getValue(
'general/store_information/phone',
\Magento\Store\Model\ScopeInterface::SCOPE_STORE
);
}
và gọi trong mẫu của bạn echo $block->getStorePhone()
Các phương pháp trên không hiệu quả vì vậy tôi đã thử theo cách và nó hiệu quả với tôi ...
namespace Vendor\Module\Block;
class Contact extends \Magento\Framework\View\Element\Template
{
protected $_storeInfo;
protected $_storeManagerInterface;
public function __construct(
\Magento\Framework\View\Element\Template\Context $context,
\Magento\Store\Model\Information $storeInfo,
\Magento\Store\Model\StoreManagerInterface $storeManagerInterface,
array $data = []
)
{
parent::__construct($context, $data);
$this->_storeInfo = $storeInfo;
$this->_storeManagerInterface = $storeManagerInterface;
}
public function getPhoneNumber()
{
return $this->_storeInfo->getStoreInformationObject($this->_storeManagerInterface->getStore(null))->getPhone();
}
}
và trong tệp mẫu tôi đã gọi
echo $block->getPhoneNumber();
Các mã trên không làm việc cho tôi. Tôi đã thử mã sau đây hoạt động.
class Sociallinks extends \Magento\Framework\View\Element\Template
{
protected $socialLinksHelper;
protected $objMgr;
protected $storeInfo;
protected $scopeConfig;
public function __construct(
\Magento\Framework\View\Element\Template\Context $context,
\Addpeople\Websettings\Helper\Data $myModuleHelper,
array $data = []
) {
parent::__construct($context, $data);
$this->_socialLinksHelper = $myModuleHelper;
$this->_objMgr = \Magento\Framework\App\ObjectManager::getInstance();
$storeInformation = $this->_objMgr->create('Magento\Store\Model\Information');
$store = $this->_objMgr->create('Magento\Store\Model\Store');
$this->_storeInfo = $storeInformation->getStoreInformationObject($store);
}
public function getPhoneNumber()
{
return $this->_storeInfo->getPhone();
}
}
Tệp mẫu
<?php echo $block->getPhoneNumber();?>
Chúng tôi cũng có thể sử dụng:
$objectManager = \Magento\Framework\App\ObjectManager::getInstance();
$storePhone = $objectManager->get('Magento\Framework\App\Config\ScopeConfigInterface')->getValue('general/store_information/phone');