Як використовувати функцію getUrl () в Magento 2


11

Чи можу я зателефонувати Mage :: getUrl () безпосередньо за допомогою $ this-> в Magento2?

Як я можу використовувати код нижче в Magento2?

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


Ви можете сміливо закривати питання, прийнявши відповідь знизу.
Ракеш Єсадія

Відповіді:


18

У блоці ви можете використовувати $this->getUrl()параметри так, як ви їх знаєте з Magento 1. У шаблоні використовуйте $block->getUrl()замість цього.

Поза зовнішні блоки та шаблони вам потрібен доступ \Magento\Framework\UrlInterface, тому якщо він ще не доступний у поточному класі, додайте його як параметр конструктора, призначте його $this->urlBuilderта використовуйте $this->urlBuilder->getUrl().


2
перед тим, як додати його як параметр конструктора, перевірте, чи $ контекст вже має доступний екземпляр 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-адреси, наприклад "клієнт / рахунок / вхід" відповідно до необхідних дій.


0

Ви можете використовувати це в Magento 2, як

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

як його використовувати у файлі Блокування? Я намагаюся отримати ще один контролер у функції backUrl.
jafar pinjar
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.