Verwendung der Funktion getUrl () in Magento 2


Antworten:


17

In einem Block können Sie $this->getUrl()die Parameter so verwenden, wie Sie sie aus Magento 1 kennen. Verwenden Sie sie $block->getUrl()stattdessen in einer Vorlage .

Außerhalb von Blöcken und Vorlagen benötigen Sie Zugriff. \Magento\Framework\UrlInterfaceWenn es in der aktuellen Klasse noch nicht verfügbar ist, fügen Sie es als Konstruktorparameter hinzu, weisen Sie es zu $this->urlBuilderund verwenden Sie es $this->urlBuilder->getUrl().


2
Bevor Sie es als Konstruktorparameter hinzufügen, überprüfen Sie, ob $ context bereits über eine zugängliche Instanz von urlBuilder verfügt.
LucScu

5

Sie können diese Methode einfach in Magento 2 wie folgt aufrufen:

//define query array pass to url
    $query = ['str1' => 'value1', 'str2' => 'value2',];
    $link = $block->getUrl('*/*/*', ['_current' => true, '_use_rewrite' => true, '_query' => $query]);

Sie können auch einen Aktionswert anstelle der */*/*obigen URL übergeben, z. B. "Kunde / Konto / Login" gemäß Ihrer erforderlichen Aktion.


0

Sie können dies in Magento 2 wie verwenden

$block->getUrl('*/*/*', ['_current' => true, '_use_rewrite' => true])

Wie verwende ich es in einer Blockdatei? Ich versuche, einen anderen Controller in der BackUrl-Funktion zu bekommen.
Jafar Pinjar
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.