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.