Magento2:Cómo generar una URL de administrador con una clave segura desde un controlador
-
29-09-2020 - |
Pregunta
Quiero saber cómo puedo generar una URL de administrador válida desde
- Un controlador
- En cualquier lugar
así puedo hacer que cualquier administrador de URL personalizado funcione si lo necesito en un ajax o lo que sea.La respuesta para 1 o 2 funcionará, pero creo que es mejor tener ambas.
Solución
Desde un controlador simplemente puedes usar $this->getUrl('url/path/here', $paramsHere = array())
.
Desde cualquier otro lugar:
Necesitas agregar una instancia de \Magento\Framework\UrlInterface
en tu clase y usa eso:
protected $urlBuider;
public function __construct(
....
\Magento\Framework\UrlInterface $urlBuilder,
....
) {
....
$this->urlBuilder = $urlBuilder;
....
}
Entonces puedes usar esto:
$url = $this->urlBuilder->getUrl('url/path/here', $paramsHere = array());
Otros consejos
Puede generar clave de URL de administración segura por
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 desea enviar parámetros, agregue sus parames antes de la tecla
$this->urlBuilder->getRouteUrl('RouteId/ControllerName/actionName',[ 'param1'=> 'paramValue1','param2'=> 'paramValue2','key'=>$this->urlBuilder->getSecretKey('RouteId','ControllerName','actionName')])
Licenciado bajo: CC-BY-SA con atribución
No afiliado a magento.stackexchange