Sie meinen, nach einer zufälligen Benutzeranmeldung sollten wir wissen, dass sich der Benutzer auf welcher Seite befindet.
Arjun
Der Benutzer muss sich nicht anmelden. Ich möchte nur überprüfen, ob es sich bei der Seite um eine Kategorieseite oder eine Produktseite handelt. Wie in Magento 1 können wir dies folgendermaßen überprüfen: $ category = Mage :: registry ('current_category');
Magento - Team
Antworten:
28
Sie können den folgenden Code ausprobieren, der Ihnen möglicherweise hilft.
Fügen Sie eine Instanz von \Magento\Framework\App\Request\Httpin Ihren Klassenkonstruktor ein.
Wenn Sie sich in einem Controller befinden, müssen Sie dies nicht tun. Sie können bereits so darauf zugreifen$request = $this->getRequest()
Dann können Sie überprüfen, ob Kategorie oder Produkt wie folgt ist :
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}
Wenn Sie es direkt in einer HTML-Datei haben möchten, verwenden Sie es wie folgt: $ this-> getRequest () -> getFullActionName () Hier ist die if-Bedingung, die ich verwendet habe: if ($ this-> getRequest () -> getFullActionName () == ' catalog_category_view ') {...}
KA9
Hallo @Arjun, wie würden Sie dann den Namen der Kategorie erhalten, in der Sie sich befinden?
John
5
Sie können die Instanz von \ Magento \ Framework \ App \ Request \ Http in Ihrem Klassenkonstruktor verwenden. Wenn Sie sich in einem Controller befinden, müssen Sie dies nicht tun.
Sie können bereits so darauf zugreifen $request = $this->getRequest()
Dann können Sie überprüfen, ob es sich um eine Homepage, eine Kategorieseite oder eine Produktseite handelt:
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}
Andernfalls direkt in der HTML-Datei mit dem Objektmanager verwenden
if ($ this-> getProductPage ()) {
// Dies ist eine Produktseite, mach ein paar Sachen
}}
elseif ($ this-> getCategoryPage ()) {
// Dies ist eine Kategorieseite, mach ein paar Sachen
}}
Antworten:
Sie können den folgenden Code ausprobieren, der Ihnen möglicherweise hilft.
Fügen Sie eine Instanz von
\Magento\Framework\App\Request\Http
in Ihren Klassenkonstruktor ein.Wenn Sie sich in einem Controller befinden, müssen Sie dies nicht tun. Sie können bereits so darauf zugreifen
$request = $this->getRequest()
Dann können Sie überprüfen, ob Kategorie oder Produkt wie folgt ist :
quelle
Sie können die Instanz von \ Magento \ Framework \ App \ Request \ Http in Ihrem Klassenkonstruktor verwenden. Wenn Sie sich in einem Controller befinden, müssen Sie dies nicht tun.
Sie können bereits so darauf zugreifen
$request = $this->getRequest()
Dann können Sie überprüfen, ob es sich um eine Homepage, eine Kategorieseite oder eine Produktseite handelt:
Andernfalls direkt in der HTML-Datei mit dem Objektmanager verwenden
quelle
Ich denke, wir können direkt verwenden
in der .phtml-Datei, um die aktuelle Seitenaktion abzurufen.
quelle
Wenn Sie eine Vorlagendatei verwenden, z. B. .phtml, können Sie die Seite direkt mit dem folgenden Code aufrufen:
$ objectManager = \ Magento \ Framework \ App \ ObjectManager :: getInstance ();
$ request = $ objectManager-> get ('\ Magento \ Framework \ App \ Request \ Http');
if ($ request-> getFullActionName () == 'cms_index_index') {// du bist auf der Homepage}
if ($ request-> getFullActionName () == 'catalog_product_view') {// Sie befinden sich auf der Produktseite}
if ($ request-> getFullActionName () == 'catalog_category_view') {// Sie befinden sich auf der Kategorieseite}
und wenn Sie eine aktuelle Kategorie und ihre Daten erhalten möchten, können Sie dies über tun
$ category = $ objectManager-> get ('Magento \ Framework \ Registry') -> Registrierung ('current_category');
$ category-> getData ('schbang_category_name');
Dabei ist schbang_category_name mein benutzerdefiniertes Kategorieattribut
Ich hoffe das könnte jemandem helfen.
quelle
Sie können Bedingungen hinzufügen, z
quelle
getCategoryPage
in Magento 2, zumindest nicht in 2.1.10