Magento2: Cách tạo url quản trị bằng khóa bảo mật từ bộ điều khiển


8

Tôi muốn biết, làm cách nào tôi có thể tạo url quản trị viên hợp lệ từ

  1. Bộ điều khiển
  2. Dù sao đi nữa

vì vậy tôi có thể làm cho bất kỳ quản trị viên url tùy chỉnh nào hoạt động nếu tôi cần nó trong ajax hoặc bất cứ điều gì. Trả lời cho 1 hoặc 2 sẽ thực hiện công việc, bot tôi nghĩ tốt hơn là có cả hai.

Câu trả lời:


13

Từ một bộ điều khiển bạn chỉ cần sử dụng $this->getUrl('url/path/here', $paramsHere = array()).

Từ bất cứ nơi nào khác:

Bạn cần thêm một thể hiện \Magento\Framework\UrlInterfacetrong lớp của bạn và sử dụng:

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

Sau đó, bạn có thể sử dụng này:

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

1
Trong Magento 2.0.6 getUrl () được xác định trong \ Magento \ Framework \ UrlInterface không (hoặc không còn hoặc chưa) trong \ Magento \ Backend \ Model \ UrlInterface!
fietserwin

Vâng. Điều này đã thay đổi. Bạn đúng rồi.
Marius

0

Bạn có thể tạo khóa url quản trị an toàn bằng cách

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

Nếu bạn muốn gửi tham số thì thêm thông số của bạn trước khóa

$this->urlBuilder->getRouteUrl('RouteId/ControllerName/actionName',[ 'param1'=> 'paramValue1','param2'=> 'paramValue2','key'=>$this->urlBuilder->getSecretKey('RouteId','ControllerName','actionName')])
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.