La versión de Magento 1 usamos la función Mage :: getBlockSingleton ('page / html_header') -> getIsHomePage (); quiero mostrar pagewise de datos como página de inicio, página de la categoría, la página del producto y la página cms etc
MagikVishal
1
Lo sé, pero para responder esto quiero saber dónde quieres usar esto en magento2. No hay clase de mago global en m2.
Marius
Respuestas:
20
Puede intentar esto: inyecte una instancia de \Magento\Framework\App\Request\Httpen su constructor de clase. Si está en un controlador, no necesita hacerlo. Ya puedes acceder así$request = $this->getRequest()
Luego puede verificar si es la página de inicio 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}
@marius: ¿cómo verifico lo mismo en un archivo phtml?
Manashvi Birla
2
escriba un método en el bloque que devuelve el $this->_request->getFullActionName()anuncio y úselo en el archivo phtml.
Marius
¿Podrías dar más detalles? ¿Cómo se hace eso?
Max
@Max ¿qué más elaboración necesitas? Creo que la respuesta es clara? dime lo que quieres saber
Marius
Lo siento, lo releí y está claro. Gracias.
Max
7
Desde el interior del archivo phtml esto funcionó para mí:
if($this->getRequest()->getFullActionName()=='cms_index_index'){//you are on the homepage}if($this->getRequest()->getFullActionName()=='catalog_product_view'){//you are on the product page}if($this->getRequest()->getFullActionName()=='catalog_category_view'){//you are on the category page}
Esto funcionó para mí. ¿Por qué no usar Object Manager?
TheBlackBenzKid
Es una mala práctica usar el Administrador de objetos directamente. El documento de desarrollo oficial de Magento dice "Magento prohíbe el uso directo del ObjectManager en su código porque oculta las dependencias reales de una clase".
Makwana Ketan
0
Debido a la inyección de dependencia del patrón de diseño. Crea un módulo para solicitar un recurso a pedido. El administrador de objetos va en contra de ese paradigma. Sin embargo, funciona muy bien, pero es como usar Mage de nuevo, lento.
Respuestas:
Puede intentar esto: inyecte una instancia de
\Magento\Framework\App\Request\Http
en su constructor de clase. Si está en un controlador, no necesita hacerlo. Ya puedes acceder así$request = $this->getRequest()
Luego puede verificar si es la página de inicio como esta:
fuente
$this->_request->getFullActionName()
anuncio y úselo en el archivo phtml.Desde el interior del archivo phtml esto funcionó para mí:
fuente
Prueba este:
fuente
Debido a la inyección de dependencia del patrón de diseño. Crea un módulo para solicitar un recurso a pedido. El administrador de objetos va en contra de ese paradigma. Sin embargo, funciona muy bien, pero es como usar Mage de nuevo, lento.
fuente
Pruebe el siguiente código:
Usando Object Manager
fuente