Вы имеете в виду, что после случайного входа в систему мы должны узнать, на какой странице находится пользователь.
Арджун
Пользователю не требуется входить в систему. Я просто хочу проверить, является ли страница страницей категории или страницей продукта. Как в Magento 1 Мы можем проверить это так: $ category = Mage :: registry ('current_category');
Команда Magento
Ответы:
29
Вы можете попробовать код ниже, это может вам помочь.
Вводит экземпляр из \Magento\Framework\App\Request\Httpвашей конструкторы класса.
Если вы находитесь в контроллере, вам не нужно это делать. Вы уже можете получить к нему доступ, как это$request = $this->getRequest()
Затем вы можете проверить, если это категория или продукт, как это:
if($this->_request->getFullActionName()=='catalog_product_view'){//you are on the product page}if($this->_request->getFullActionName()=='catalog_category_view'){//you are on the category page}
Если вы хотите использовать его непосредственно в файле phtml, используйте следующее: $ this-> getRequest () -> getFullActionName (). Вот условие if, которое я использовал: if ($ this-> getRequest () -> getFullActionName () == ' catalog_category_view ') {...}
KA9
Привет @ Арджун, Как бы ты тогда узнал название категории, в которой ты находишься?
Джон
5
Я думаю, мы можем напрямую использовать
$this->getRequest()->getFullActionName()
в файле .phtml, чтобы получить текущее действие страницы.
Вы можете использовать экземпляр \ Magento \ Framework \ App \ Request \ Http в своем конструкторе классов. Если вы находитесь в контроллере, вам не нужно это делать.
Вы уже можете получить к нему доступ, как это $request = $this->getRequest()
Затем вы можете проверить, если это домашняя страница или страница категории или страница продукта, как это:
if($this->_request->getFullActionName()=='cms_index_index'){//you are on the homepage}if($this->_request->getFullActionName()=='catalog_product_view'){//you are on the product page}if($this->_request->getFullActionName()=='catalog_category_view'){//you are on the category page}
В противном случае напрямую использовать в файле phtml с помощью диспетчера объектов
if ($ this-> getProductPage ()) {
// это страница продукта, сделать что-нибудь
}
elseif ($ this-> getCategoryPage ()) {
// это страница категории, делать что-то
}
Ответы:
Вы можете попробовать код ниже, это может вам помочь.
Вводит экземпляр из
\Magento\Framework\App\Request\Http
вашей конструкторы класса.Если вы находитесь в контроллере, вам не нужно это делать. Вы уже можете получить к нему доступ, как это
$request = $this->getRequest()
Затем вы можете проверить, если это категория или продукт, как это:
источник
Я думаю, мы можем напрямую использовать
в файле .phtml, чтобы получить текущее действие страницы.
источник
Вы можете использовать экземпляр \ Magento \ Framework \ App \ Request \ Http в своем конструкторе классов. Если вы находитесь в контроллере, вам не нужно это делать.
Вы уже можете получить к нему доступ, как это
$request = $this->getRequest()
Затем вы можете проверить, если это домашняя страница или страница категории или страница продукта, как это:
В противном случае напрямую использовать в файле phtml с помощью диспетчера объектов
источник
Если вы используете файл шаблона, т.е. .phtml, то вы можете напрямую зайти на страницу, используя следующий код:
$ objectManager = \ Magento \ Framework \ App \ ObjectManager :: getInstance ();
$ request = $ objectManager-> get ('\ Magento \ Framework \ App \ Request \ Http');
if ($ request-> getFullActionName () == 'cms_index_index') {// вы находитесь на домашней странице}
if ($ request-> getFullActionName () == 'catalog_product_view') {// вы находитесь на странице продукта}
if ($ request-> getFullActionName () == 'catalog_category_view') {// вы находитесь на странице категории}
и если вы хотите получить текущую категорию и ее данные, вы можете сделать это через
$ category = $ objectManager-> get ('Magento \ Framework \ Registry') -> registry ('current_category');
$ Category-> GetData ( 'schbang_category_name');
где schbang_category_name - это мой пользовательский атрибут категории
Я надеюсь, что это может кому-то помочь.
источник
Вы можете добавить условные, такие как
источник
getCategoryPage
Magento 2 нет функции , по крайней мере, в 2.1.10