¿Cómo redirigir a la página anterior magento 2?


14

Cómo redirigir a la página anterior desde mi acción personalizada en magento 2

Respuestas:


41

En su controlador escriba el siguiente código:

namespace Company\Module\Controller\Index;
use Magento\Framework\Controller\ResultFactory; 

class Actionname name extends \Magento\Framework\App\Action\Action
{      
    public function execute()
    {
        $resultRedirect = $this->resultFactory->create(ResultFactory::TYPE_REDIRECT);

        // Your code

        $resultRedirect->setUrl($this->_redirect->getRefererUrl());
        return $resultRedirect;
    }
}

Este código funciona para mí. Espero que también te ayude.


Es su necesidad de ser archivo XML relacionado con la acción en mi módulo @ ND17
Learing_Coder

@PranayK Primero dígame cuál es su problema, si su acción no se utiliza para renderizar ninguna página, entonces no es necesario agregar un archivo XML
ND17

si supongo que llegué a la página de la lista cuando necesito volver, a la página de inicio obtengo que el árbitro tiene la url de la página de lista @ ND17
Learing_Coder

¿Cuándo necesitas regresar alguna acción que estás realizando? por ejemplo, haga clic en algo?
ND17

Sí, tengo el vínculo Atrás al hacer clic. Necesito volver a la página de inicio. Permanece en la lista Página solamente. @ ND17
Learing_Coder

15

Esto también podría ser una respuesta válida en una forma más corta Magento 2.0.4

espacio de nombres Nombre del proveedor \ Nombre del módulo \ Controlador \ Adminhtml \ Índice;
clase Fetch extiende \ Magento \ Backend \ App \ Action
{
    función pública execute ()
    {
        // TODO: Implemente el método execute ().
        $ this -> _ redirect ($ this -> _ redirect-> getRefererUrl ());
    }
}

Se executeespera que el método devuelva a Magento\Framework\Controller\ResultInterfaceo a Magento\Framework\App\ResponseInterface. Afortunadamente, el _redirectmétodo hace uno de esos, así que esto es aconsejable:return $this->_redirect($this->_redirect->getRefererUrl());
clockworkgeek

Genial para el backend. funciona de maravilla con Magento 2.2.6.
jaydip sinh Parmar

Este es el método correcto para redirigir a la página anterior. Gracias
Avesh Naik

2

Utilice este código en su clase de controlador:

$resultRedirect = $this->resultRedirectFactory->create();
$resultRedirect->setRefererUrl();
return $resultRedirect;

Aquí resultRedirectFactory es una variable de clase que se puede heredar en su clase de allí padres.

Para verificar si la URL de referencia está configurada o no, imprima primero la variable $ _SERVER. Este código me está funcionando.


0
public function execute(){
    $resultRedirect = $this->resultRedirectFactory->create();
    try{
        $this->messageManager->addSuccess(__('Redirection Sucessful.'));
    }catch (\Exception $e) {
        $this->messageManager->addError($e->getMessage());            
    }
    $resultRedirect->setUrl($this->_redirect->getRefererUrl());
    return $resultRedirect;
}
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.