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));
Sushivam
la source
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().

Fabian Schmengler
la source
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.

Rakesh Jesadiya
la source
0

Vous pouvez l'utiliser dans Magento 2 comme

$block->getUrl('*/*/*', ['_current' => true, '_use_rewrite' => true])
Krishna ijjada
la source
comment l'utiliser dans le fichier Block? j'essaye d'obtenir un autre contrôleur dans la fonction backUrl.
jafar pinjar