Jak korzystać z funkcji getUrl () w Magento 2

11

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));
Sushivam
źródło
Możesz zamknąć pytanie po zaakceptowaniu odpowiedzi od dołu.
Rakesh Jesadiya

Odpowiedzi:

18

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().

Fabian Schmengler
źródło
2
przed dodaniem go jako parametru konstruktora sprawdź, czy $ kontekst ma już dostępne wystąpienie urlBuilder.
LucScu,
5

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ą.

Rakesh Jesadiya
źródło
0

Możesz użyć tego w Magento 2 jak

$block->getUrl('*/*/*', ['_current' => true, '_use_rewrite' => true])
Krishna ijjada
źródło
jak go używać w pliku bloku? próbuję uzyskać inny kontroler w funkcji backUrl.
jafar pinjar