Magento 2でgetUrl()関数を使用する方法


11

Magento2で$ this->を使用してMage :: getUrl()を直接呼び出すことはできますか?

Magento2で以下のコードを使用するにはどうすればよいですか?

$link = Mage::getUrl('*/*/*', array('_current'=>true, '_use_rewrite'=>true, '_query'=>$this_params));


下から回答を受け付けた後、自由に質問を閉じてください。
Rakesh Jesadiya 2016

回答:


18

ブロックでは、$this->getUrl()Magento 1でわかっているパラメーターを使用できます$block->getUrl()。代わりに、テンプレートを使用します。

ブロックとテンプレートの外側\Magento\Framework\UrlInterfaceでは、にアクセスする必要があるため、現在のクラスでまだ使用できない場合は、コンストラクターパラメーターとして追加し、に割り当ててから$this->urlBuilder、を使用します$this->urlBuilder->getUrl()


2
コンストラクタパラメータとして追加する前に、$ contextにurlBuilderのアクセス可能なインスタンスが既にあるかどうかを確認してください。
LucScu

5

以下の方法を使用して、magento 2でこのメソッドを呼び出すだけです。

//define query array pass to url
    $query = ['str1' => 'value1', 'str2' => 'value2',];
    $link = $block->getUrl('*/*/*', ['_current' => true, '_use_rewrite' => true, '_query' => $query]);

*/*/*上記のURL ではなく、必要なアクションに応じて「customer / account / login」などアクション値を渡すこともできます。


0

あなたはMagento 2のようにこれを使うことができます

$block->getUrl('*/*/*', ['_current' => true, '_use_rewrite' => true])

ブロックファイルでの使用方法 backUrl関数で別のコントローラーを取得しようとしています。
jafar pinjar 2018
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.