Чи можу я зателефонувати Mage :: getUrl () безпосередньо за допомогою $ this-> в Magento2?
Як я можу використовувати код нижче в Magento2?
$link = Mage::getUrl('*/*/*', array('_current'=>true, '_use_rewrite'=>true, '_query'=>$this_params));
Чи можу я зателефонувати Mage :: getUrl () безпосередньо за допомогою $ this-> в Magento2?
Як я можу використовувати код нижче в Magento2?
$link = Mage::getUrl('*/*/*', array('_current'=>true, '_use_rewrite'=>true, '_query'=>$this_params));
Відповіді:
У блоці ви можете використовувати $this->getUrl()параметри так, як ви їх знаєте з Magento 1. У шаблоні використовуйте $block->getUrl()замість цього.
Поза зовнішні блоки та шаблони вам потрібен доступ \Magento\Framework\UrlInterface, тому якщо він ще не доступний у поточному класі, додайте його як параметр конструктора, призначте його $this->urlBuilderта використовуйте $this->urlBuilder->getUrl().
Ви можете просто зателефонувати за цим способом у magento 2, використовуючи спосіб нижче,
//define query array pass to url
$query = ['str1' => 'value1', 'str2' => 'value2',];
$link = $block->getUrl('*/*/*', ['_current' => true, '_use_rewrite' => true, '_query' => $query]);
Ви також можете передавати значення дії замість */*/*вказаної вище URL-адреси, наприклад "клієнт / рахунок / вхід" відповідно до необхідних дій.
Ви можете використовувати це в Magento 2, як
$block->getUrl('*/*/*', ['_current' => true, '_use_rewrite' => true])