Pregunta

Quiero saber cómo puedo generar una URL de administrador válida desde

  1. Un controlador
  2. 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.

¿Fue útil?

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
scroll top