Tôi muốn kiểm tra xem nó là phía trước hay phụ trợ.
Làm thế nào tôi có thể làm điều đó?
Tôi muốn kiểm tra xem nó là phía trước hay phụ trợ.
Làm thế nào tôi có thể làm điều đó?
Câu trả lời:
Đọc thêm: blog.mageprince.com
Với objectManager
$objectManager = \Magento\Framework\App\ObjectManager::getInstance();
$state = $objectManager->get('Magento\Framework\App\State');
echo $state->getAreaCode(); //frontend or adminhtml or webapi_rest
Với tiêm phụ thuộc
protected $_state;
public function __construct (
\Magento\Framework\App\State $state
) {
$this->_state = $state;
}
public function getArea()
{
return $this->_state->getAreaCode();
}
Lưu ý: Theo tiêu chuẩn mã hóa magento2, không sử dụng trực tiếp trình quản lý đối tượng trong tệp
Mọi người đã trả lời câu hỏi rồi. Tôi chỉ làm cho nó tốt hơn.
const AREA_CODE = \Magento\Framework\App\Area::AREA_ADMINHTML;
private $_state;
public function __construct (
\Magento\Framework\App\State $state
) {
$this->_state = $state;
}
public function isAdmin()
{
$areaCode = $this->_state->getAreaCode();
return $areaCode == self::AREA_CODE;
}
Sử dụng mã dưới đây
$objectmanager = \Magento\Framework\App\ObjectManager::getInstance();
$state = $objectmanager->get('Magento\Framework\App\State');
if($state->getAreaCode() == 'frontend')
//frontend
else
//backend
Hãy thử mã dưới đây để kiểm tra nếu bạn đang ở trong khu vực quản trị
function df_is_admin($store = null) {
/** @var \Magento\Framework\ObjectManagerInterface $om */
$om = \Magento\Framework\App\ObjectManager::getInstance();
/** @var \Magento\Framework\App\State $state */
$state = $om->get('Magento\Framework\App\State');
return 'adminhtml' === $state->getAreaCode();
}