Como usar a função getUrl () no Magento 2

11

Posso chamar Mage :: getUrl () diretamente usando $ this-> no Magento2?

Como posso usar o código abaixo no Magento2?

$link = Mage::getUrl('*/*/*', array('_current'=>true, '_use_rewrite'=>true, '_query'=>$this_params));
Sushivam
fonte
Você pode ficar à vontade para fechar a pergunta depois de aceitar a resposta abaixo.
Rakesh Jesadiya

Respostas:

18

Em um bloco, você pode usar $this->getUrl()com os parâmetros como os conhece no Magento 1. Em um modelo, use em seu $block->getUrl()lugar.

Blocos e modelos externos, você precisa acessar \Magento\Framework\UrlInterface; portanto, se ainda não estiver disponível na classe atual, adicione-o como um parâmetro de construtor, atribua-o $this->urlBuildere use-o $this->urlBuilder->getUrl().

Fabian Schmengler
fonte
2
antes de adicioná-lo como um parâmetro construtor, verifique se $ context já tem uma instância acessível de urlBuilder.
LucScu
5

Você pode simplesmente chamar esse método no magento 2 usando o caminho abaixo,

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

Você também pode transmitir o valor da ação em vez do */*/*URL acima, como "cliente / conta / login", conforme a ação necessária.

Rakesh Jesadiya
fonte
0

Você pode usar isso no Magento 2 como

$block->getUrl('*/*/*', ['_current' => true, '_use_rewrite' => true])
Krishna ijjada
fonte
como usá-lo no arquivo de bloco? Estou tentando obter outro controlador na função backUrl.
Jafar pinjar