Magento2: Czy to jest frontend czy backend?


Odpowiedzi:


22

Czytaj więcej: blog.mageprince.com

Z objectManager

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

Z wtryskiem zależnym

protected $_state;

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

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

Uwaga: Zgodnie ze standardami kodowania magento2 nie używaj instancji menedżera obiektów bezpośrednio w plikach


1
+1 za wstrzyknięcie zależności
PЯINCƏ

+1 @ PЯINCƏ Zgodnie ze standardem kodowania Magento, nie używaj pełnej nazwy klasy w metodzie konstrukcji. Zadeklaruj pełną klasę za pomocą instrukcji use i zadeklaruj tylko nazwę klasy do metody construct ().
Rakesh Jesadiya

1
@RakeshJesadiya Nie zgadzam się z tobą, zobacz to pytanie: magento.stackexchange.com/questions/106096/…
PЯINCƏ

6

Ludzie już odpowiedzieli na pytanie. Po prostu robię to lepiej.

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

cześć @dinesh, czy możemy włączyć tryb konserwacji tylko po stronie administratora?
jafar pinjar

Nie, ta opcja nie jest dostępna.
Dinesh Yadav

3

Użyj poniższego kodu

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

2

Wypróbuj poniższy kod, aby sprawdzić, czy jesteś w obszarze administracyjnym

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

0
 public function isAdmin(){
      return ('adminhtml' == $this->_state->getAreaCode());
 }
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.