Como redirecionar para a página anterior magento 2?

14

Como redirecionar para a página anterior da minha ação personalizada no magento 2

Novato
fonte

Respostas:

41

No Your Controller, escreva o seguinte 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;
    }
}

Esse código funciona para mim, espero que também o ajude.

ND17
fonte
É a sua necessidade de ser arquivo XML relacionado à ação em meu módulo @ ND17
Learing_Coder
@PranayK Primeiro me diga qual é o seu problema, Se a sua ação não usar para qualquer página renderizadas do que há necessidade de adicionar arquivo XML
ND17
se suponha que eu vim para a página da lista quando eu preciso voltar, a home page Estou recebendo o refererurl tem lista de páginas url @ ND17
Learing_Coder
Quando você precisa voltar alguma ação, está realizando? por exemplo, clique em algo?
ND17
sim, tenho o link Voltar ao clicar. Preciso voltar para a página inicial, que permanece na lista Página apenas. @ ND17
Learing_Coder
15

Esta também pode ser uma resposta válida em uma forma mais curta Magento 2.0.4

namespace Vendorname \ Nome do módulo \ Controller \ Adminhtml \ Index;
A classe Fetch estende \ Magento \ Backend \ App \ Action
{
    função pública execute ()
    {
        // TODO: Implementa o método execute ().
        $ this -> _ redirect ($ this -> _ redirect-> getRefererUrl ());
    }
}
oliver
fonte
O executemétodo é esperado para retornar um Magento\Framework\Controller\ResultInterfaceou um Magento\Framework\App\ResponseInterface. Felizmente, o _redirectmétodo faz um daqueles isso esta é aconselhável:return $this->_redirect($this->_redirect->getRefererUrl());
clockworkgeek
legal para o back-end. funciona de maneira impressionante com o Magento 2.2.6.
jaydip sinh Parmar
Este é o método correto para redirecionar para a página anterior. Obrigado
Avesh Naik
2

Por favor, use este código na sua classe de controlador:

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

Aqui resultRedirectFactory é uma variável de classe que pode ser herdada da sua classe a partir dos pais.

Para verificar se o URL de referência está definido ou não, imprima primeiro a variável $ _SERVER. Este código está funcionando para mim.

Sumit Verma
fonte
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;
}
Amit Singh
fonte