Posso chiamare Mage :: getUrl () direttamente usando $ this-> in Magento2?
Come posso usare il codice qui sotto in Magento2?
$link = Mage::getUrl('*/*/*', array('_current'=>true, '_use_rewrite'=>true, '_query'=>$this_params));
Posso chiamare Mage :: getUrl () direttamente usando $ this-> in Magento2?
Come posso usare il codice qui sotto in Magento2?
$link = Mage::getUrl('*/*/*', array('_current'=>true, '_use_rewrite'=>true, '_query'=>$this_params));
Risposte:
In un blocco, puoi utilizzare $this->getUrl()
i parametri come li conosci da Magento 1. In un modello, usa $block->getUrl()
invece.
È necessario accedere a blocchi e modelli esterni \Magento\Framework\UrlInterface
, quindi se non è ancora disponibile nella classe corrente, aggiungerlo come parametro del costruttore, assegnarlo a $this->urlBuilder
, quindi utilizzare $this->urlBuilder->getUrl()
.
Puoi semplicemente chiamare questo metodo in magento 2 usando il modo seguente,
//define query array pass to url
$query = ['str1' => 'value1', 'str2' => 'value2',];
$link = $block->getUrl('*/*/*', ['_current' => true, '_use_rewrite' => true, '_query' => $query]);
Puoi anche passare il valore dell'azione anziché */*/*
nell'URL sopra, come "cliente / account / accesso" come per l'azione richiesta.
Puoi usarlo in Magento 2 come
$block->getUrl('*/*/*', ['_current' => true, '_use_rewrite' => true])