Magento2: как генерировать URL admin с безопасным ключом от контроллера

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

Вопрос

Я хочу знать, как я могу генерировать действительный URL-адрес администратора от

  1. контроллер
  2. onwwwhnere
  3. Итак, я могу сделать любые пользовательские работы URL-администратора, если мне нужно его в ajax или что-то еще.Ответ за 1 или 2 сделаю работу, бот, я думаю, что лучше иметь оба.

Это было полезно?

Решение

от контроллера, который вы можете просто использовать $this->getUrl('url/path/here', $paramsHere = array()).

из любого места еще:

Вам нужно добавить экземпляр \Magento\Framework\UrlInterface в вашем классе и использовать это:

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

Тогда вы можете использовать это:

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

Другие советы

Вы можете генерировать безопасный ключ URL-адреса администратора через

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')])
}
.

Если вы хотите отправлять параметры, добавьте параметры перед ключом

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с magento.stackexchange
scroll top