Могу ли я вызвать 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])