Magento2: ตรวจสอบว่าเป็นส่วนหน้าหรือส่วนหลังหรือไม่


คำตอบ:


22

อ่านเพิ่มเติม: blog.mageprince.com

ด้วย objectManager

$objectManager = \Magento\Framework\App\ObjectManager::getInstance();
$state =  $objectManager->get('Magento\Framework\App\State');
echo $state->getAreaCode(); //frontend or adminhtml or webapi_rest

ด้วยการฉีดพึ่งพา

protected $_state;

public function __construct (
    \Magento\Framework\App\State $state
) {
    $this->_state = $state;
}

public function getArea()
{
    return $this->_state->getAreaCode();
}

หมายเหตุ: ตามมาตรฐานการเข้ารหัส magento2 อย่าใช้อินสแตนซ์ตัวจัดการวัตถุโดยตรงในไฟล์


1
+1 สำหรับการพึ่งพาการฉีด
PЯINCƏ

+1 @ PЯINCƏตามมาตรฐานการเข้ารหัสของวีโอไอพีอย่าใช้ชื่อคลาสแบบเต็มในวิธีการสร้าง ประกาศคลาสเต็มโดยใช้คำสั่งการใช้งานและประกาศชื่อคลาสเท่านั้นที่จะสร้าง () วิธีการ
Rakesh Jesadiya

1
@RakeshJesadiya ฉันไม่เห็นด้วยกับคุณโปรดดูคำถามนี้: magento.stackexchange.com/questions/106096/…
PЯINCƏ

6

ผู้คนตอบคำถามแล้ว ฉันแค่ทำให้ดีขึ้น

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;
}

สวัสดี @dinesh เราสามารถเปิดใช้งานโหมดบำรุงรักษาเฉพาะด้านผู้ดูแลระบบหรือไม่
jafar pinjar

ไม่ตัวเลือกนั้นไม่สามารถใช้ได้
Dinesh Yadav

3

ใช้รหัสด้านล่าง

$objectmanager = \Magento\Framework\App\ObjectManager::getInstance();
$state =  $objectmanager->get('Magento\Framework\App\State');
if($state->getAreaCode() == 'frontend')
  //frontend
else
  //backend

2

ลองใช้รหัสด้านล่างเพื่อตรวจสอบว่าคุณอยู่ในพื้นที่ผู้ดูแลระบบ

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();
}

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.