Cara menggunakan fungsi getUrl () di Magento 2

11

Bisakah saya menghubungi Mage :: getUrl () langsung menggunakan $ this-> di Magento2?

Bagaimana saya bisa menggunakan kode di bawah ini di Magento2?

$link = Mage::getUrl('*/*/*', array('_current'=>true, '_use_rewrite'=>true, '_query'=>$this_params));
Sushivam
sumber
Anda dapat merasa bebas untuk menutup pertanyaan setelah menerima jawaban dari bawah.
Rakesh Jesadiya

Jawaban:

18

Dalam sebuah blok, Anda dapat menggunakan $this->getUrl()dengan parameter seperti yang Anda ketahui dari Magento 1. Dalam sebuah template, gunakan $block->getUrl()saja.

Di luar blok dan templat, Anda memerlukan akses ke \Magento\Framework\UrlInterface, jadi jika belum tersedia di kelas saat ini, tambahkan sebagai parameter konstruktor, tetapkan $this->urlBuilder, lalu gunakan $this->urlBuilder->getUrl().

Fabian Schmengler
sumber
2
sebelum menambahkannya sebagai cek parameter konstruktor apakah $ context telah memiliki instance urlBuilder yang dapat diakses.
LucScu
5

Anda cukup memanggil metode ini di Magento 2 menggunakan cara di bawah ini,

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

Anda juga dapat memberikan nilai tindakan alih-alih */*/*dalam url di atas, seperti 'pelanggan / akun / masuk' sesuai tindakan yang Anda perlukan.

Rakesh Jesadiya
sumber
0

Anda dapat menggunakan ini di Magento 2 suka

$block->getUrl('*/*/*', ['_current' => true, '_use_rewrite' => true])
Krishna ijjada
sumber
bagaimana cara menggunakannya dalam file Block? saya mencoba untuk mendapatkan pengontrol lain dalam fungsi backUrl.
jafar pinjar