Você quer dizer que após um login aleatório de usuário, devemos saber que o usuário está em qual página.
Arjun
Não é necessário que o usuário faça login. Eu só quero verificar se a página é página de categoria ou página de produto. Como no Magento 1, podemos verificar assim: $ category = Mage :: registry ('current_category');
Magento Team
Respostas:
29
Você pode tentar o código abaixo, que pode ajudá-lo.
Injete uma instância de \Magento\Framework\App\Request\Httpno seu construtor de classe.
Se você estiver em um controlador, não precisará fazê-lo. Você já pode acessá-lo assim$request = $this->getRequest()
Então você pode verificar se é categoria ou produto como este:
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}
Se você quiser diretamente no arquivo phtml, use desta forma - $ this-> getRequest () -> getFullActionName () aqui está a condição if que eu usei: if ($ this-> getRequest () -> getFullActionName () == ' catalog_category_view ') {...}
KA9
Olá @Arjun, Como você obteria o nome da categoria em que está?
John #
5
Eu acho que podemos usar diretamente
$this->getRequest()->getFullActionName()
no arquivo .phtml para obter a ação atual da página.
Você pode usar a instância de \ Magento \ Framework \ App \ Request \ Http no seu construtor de classes. Se você estiver em um controlador, não precisará fazê-lo.
Você já pode acessá-lo assim $request = $this->getRequest()
Em seguida, você pode verificar se é a página inicial ou a página da categoria ou a página do produto como esta:
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}
Caso contrário, use diretamente no arquivo phtml usando o gerenciador de objetos
if ($ this-> getProductPage ()) {
// esta é uma página de produto, faça algumas coisas
}
elseif ($ this-> getCategoryPage ()) {
// esta é uma página de categoria, faça algumas coisas
}
Respostas:
Você pode tentar o código abaixo, que pode ajudá-lo.
Injete uma instância de
\Magento\Framework\App\Request\Http
no seu construtor de classe.Se você estiver em um controlador, não precisará fazê-lo. Você já pode acessá-lo assim
$request = $this->getRequest()
Então você pode verificar se é categoria ou produto como este:
fonte
Eu acho que podemos usar diretamente
no arquivo .phtml para obter a ação atual da página.
fonte
Você pode usar a instância de \ Magento \ Framework \ App \ Request \ Http no seu construtor de classes. Se você estiver em um controlador, não precisará fazê-lo.
Você já pode acessá-lo assim
$request = $this->getRequest()
Em seguida, você pode verificar se é a página inicial ou a página da categoria ou a página do produto como esta:
Caso contrário, use diretamente no arquivo phtml usando o gerenciador de objetos
fonte
Se você estiver usando um arquivo de modelo, por exemplo, .phtml, diretamente, poderá ligar na página usando o código abaixo:
$ objectManager = \ Magento \ Framework \ App \ ObjectManager :: getInstance ();
$ request = $ objectManager-> get ('\ Magento \ Framework \ App \ Request \ Http');
if ($ request-> getFullActionName () == 'cms_index_index') {// você está na página inicial}
if ($ request-> getFullActionName () == 'catalog_product_view') {// você está na página do produto}
if ($ request-> getFullActionName () == 'catalog_category_view') {// você está na página da categoria}
e se você deseja obter uma categoria atual e seus dados, pode fazê-lo via
$ category = $ objectManager-> get ('Magento \ Framework \ Registry') -> registro ('categoria_ atual');
$ category-> getData ('schbang_category_name');
em que schbang_category_name é meu atributo de categoria personalizado
Espero que isso ajude alguém.
fonte
você pode adicionar condicionais, como
fonte
getCategoryPage
em qualquer lugar Magento 2, pelo menos não em 2.1.10