Kann ich Mage :: getUrl () direkt mit $ this-> in Magento2 aufrufen?
Wie kann ich den folgenden Code in Magento2 verwenden?
$link = Mage::getUrl('*/*/*', array('_current'=>true, '_use_rewrite'=>true, '_query'=>$this_params));
Kann ich Mage :: getUrl () direkt mit $ this-> in Magento2 aufrufen?
Wie kann ich den folgenden Code in Magento2 verwenden?
$link = Mage::getUrl('*/*/*', array('_current'=>true, '_use_rewrite'=>true, '_query'=>$this_params));
Antworten:
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\UrlInterface
Wenn es in der aktuellen Klasse noch nicht verfügbar ist, fügen Sie es als Konstruktorparameter hinzu, weisen Sie es zu $this->urlBuilder
und verwenden Sie es $this->urlBuilder->getUrl()
.
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.
Sie können dies in Magento 2 wie verwenden
$block->getUrl('*/*/*', ['_current' => true, '_use_rewrite' => true])