Magento2 :Comment générer une URL d'administration avec une clé sécurisée à partir d'un contrôleur
-
29-09-2020 - |
Question
Je veux savoir comment puis-je générer une URL d'administrateur valide à partir de
- Un contrôleur
- 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.
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')])