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

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

質問

知りたいのですが、

から有効な管理者URLを生成する方法

  1. コントローラ
  2. AnyWhere
  3. だから私はAjaxまたは何でも必要な場合は、カスタムURL管理機能を作ることができます。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