Comment utiliser la fonction getUrl () dans Magento 2


11

Puis-je appeler Mage :: getUrl () directement en utilisant $ this-> dans Magento2?

Comment puis-je utiliser le code ci-dessous dans Magento2?

$link = Mage::getUrl('*/*/*', array('_current'=>true, '_use_rewrite'=>true, '_query'=>$this_params));


Vous pouvez vous sentir libre de fermer la question après avoir accepté la réponse ci-dessous.
Rakesh Jesadiya

Réponses:


18

Dans un bloc, vous pouvez utiliser $this->getUrl()les paramètres tels que vous les connaissez dans Magento 1. Dans un modèle, utilisez $block->getUrl()plutôt.

En dehors des blocs et des modèles, vous devez avoir accès à \Magento\Framework\UrlInterface, donc s'il n'est pas encore disponible dans la classe actuelle, ajoutez-le comme paramètre constructeur, affectez-le $this->urlBuilder, puis utilisez $this->urlBuilder->getUrl().


2
avant de l'ajouter en tant que paramètre constructeur, vérifiez si $ context a déjà une instance accessible de urlBuilder.
LucScu

5

Vous pouvez simplement appeler cette méthode dans magento 2 en utilisant la méthode ci-dessous,

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

Vous pouvez également transmettre la valeur de l'action au lieu de l' */*/*URL ci-dessus, comme «client / compte / connexion» selon votre action requise.


0

Vous pouvez l'utiliser dans Magento 2 comme

$block->getUrl('*/*/*', ['_current' => true, '_use_rewrite' => true])

comment l'utiliser dans le fichier Block? j'essaye d'obtenir un autre contrôleur dans la fonction backUrl.
jafar pinjar
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.