Cómo usar la función getUrl () en Magento 2

11

¿Puedo llamar a Mage :: getUrl () directamente usando $ this-> en Magento2?

¿Cómo puedo usar el siguiente código en Magento2?

$link = Mage::getUrl('*/*/*', array('_current'=>true, '_use_rewrite'=>true, '_query'=>$this_params));
Sushivam
fuente
Puede sentirse libre de cerrar la pregunta después de aceptar la respuesta de abajo.
Rakesh Jesadiya

Respuestas:

18

En un bloque, puede usar $this->getUrl()los parámetros tal como los conoce de Magento 1. En una plantilla, use $block->getUrl()en su lugar.

Fuera de los bloques y las plantillas, necesita acceso \Magento\Framework\UrlInterface, por lo que si aún no está disponible en la clase actual, agréguelo como parámetro de construcción, asígnelo y $this->urlBuilderluego úselo $this->urlBuilder->getUrl().

Fabian Schmengler
fuente
2
antes de agregarlo como parámetro del constructor, compruebe si $ context ya tiene una instancia accesible de urlBuilder.
LucScu
5

Simplemente puede llamar a este método en magento 2 usando el siguiente modo,

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

También puede pasar el valor de acción en lugar de */*/*en la URL anterior, como 'cliente / cuenta / inicio de sesión' según su acción requerida.

Rakesh Jesadiya
fuente
0

Puedes usar esto en Magento 2 como

$block->getUrl('*/*/*', ['_current' => true, '_use_rewrite' => true])
Krishna ijjada
fuente
¿Cómo usarlo en el archivo de bloque? Estoy tratando de obtener otro controlador en la función backUrl.
jafar pinjar