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));
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));
Réponses:
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()
.
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.
Vous pouvez l'utiliser dans Magento 2 comme
$block->getUrl('*/*/*', ['_current' => true, '_use_rewrite' => true])