Czy mogę wywołać Mage :: getUrl () bezpośrednio za pomocą $ this-> w Magento2?
Jak mogę użyć poniższego kodu w Magento2?
$link = Mage::getUrl('*/*/*', array('_current'=>true, '_use_rewrite'=>true, '_query'=>$this_params));
Czy mogę wywołać Mage :: getUrl () bezpośrednio za pomocą $ this-> w Magento2?
Jak mogę użyć poniższego kodu w Magento2?
$link = Mage::getUrl('*/*/*', array('_current'=>true, '_use_rewrite'=>true, '_query'=>$this_params));
Odpowiedzi:
W bloku możesz używać $this->getUrl()
parametrów, które znasz z Magento 1. $block->getUrl()
Zamiast tego użyj szablonu .
Poza blokami i szablonami potrzebujesz dostępu \Magento\Framework\UrlInterface
, więc jeśli nie jest jeszcze dostępny w bieżącej klasie, dodaj go jako parametr konstruktora, przypisz go $this->urlBuilder
, a następnie użyj $this->urlBuilder->getUrl()
.
Możesz po prostu wywołać tę metodę w Magento 2, używając poniższego sposobu,
//define query array pass to url
$query = ['str1' => 'value1', 'str2' => 'value2',];
$link = $block->getUrl('*/*/*', ['_current' => true, '_use_rewrite' => true, '_query' => $query]);
Możesz również przekazać wartość akcji zamiast */*/*
w powyższym adresie URL, na przykład „klient / konto / login” zgodnie z wymaganą czynnością.
Możesz użyć tego w Magento 2 jak
$block->getUrl('*/*/*', ['_current' => true, '_use_rewrite' => true])