Magento2 :Comment générer une URL d'administration avec une clé sécurisée à partir d'un contrôleur

magento.stackexchange https://magento.stackexchange.com/questions/104069

Question

Je veux savoir comment puis-je générer une URL d'administrateur valide à partir de

  1. Un contrôleur
  2. N'importe où

afin que je puisse faire fonctionner n'importe quel administrateur d'URL personnalisé si j'en ai besoin dans un ajax ou autre.La réponse pour 1 ou 2 fera l'affaire, mais je pense qu'il vaut mieux avoir les deux.

Était-ce utile?

La solution

Depuis un contrôleur, vous pouvez simplement utiliser $this->getUrl('url/path/here', $paramsHere = array()).

De n'importe où ailleurs :

Vous devez ajouter une instance de \Magento\Framework\UrlInterface dans votre classe et utilisez cela :

protected $urlBuider;
public function __construct(
    ....
    \Magento\Framework\UrlInterface $urlBuilder,
    ....
) {
    ....
    $this->urlBuilder = $urlBuilder;
    ....
}

Ensuite, vous pouvez utiliser ceci :

$url = $this->urlBuilder->getUrl('url/path/here', $paramsHere = array());

Autres conseils

Vous pouvez générer une clé d'URL d'administrateur sécurisé par

protected $urlBuider;
public function __construct(
    ....
    \Magento\Backend\Model\UrlInterface $urlBuilder,
    ....
) {
    ....
    $this->urlBuilder = $urlBuilder;
    ....
}

public function Yourmethod()
{
$this->urlBuilder->getRouteUrl('RouteId/ControllerName/actionName',[ 'key'=>$this->urlBuilder->getSecretKey('RouteId','ControllerName','actionName')])
}

Si vous souhaitez envoyer des paramètres, ajoutez vos paramètres avant la touche

$this->urlBuilder->getRouteUrl('RouteId/ControllerName/actionName',[ 'param1'=> 'paramValue1','param2'=> 'paramValue2','key'=>$this->urlBuilder->getSecretKey('RouteId','ControllerName','actionName')])

Licencié sous: CC-BY-SA avec attribution
Non affilié à magento.stackexchange
scroll top