Magento2:コントローラーから安全なキーで管理URLを生成する方法


8

知りたいのですが、どうすれば有効な管理URLを生成できますか

  1. コントローラー
  2. とにかく

Ajaxなどで必要な場合は、カスタムURL管理を機能させることができます。1か2のどちらかで答えればうまくいきます。ボットは両方あるほうがいいと思います。

回答:


13

コントローラからは、簡単に使用できます$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());

1
Magento 2.0.6ではgetUrl()が\ Magento \ Backend \ Model \ UrlInterfaceにない(またはまだない)\ Magento \ Framework \ UrlInterfaceで定義されています!
fietserwin 2016年

うん。これは変更されました。あなたが正しいです。
マリウス

0

あなたは安全な管理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')])
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.