Comment rediriger vers la page précédente magento 2?

14

Comment rediriger vers la page précédente à partir de mon action personnalisée dans magento 2

Débutant
la source

Réponses:

42

Dans votre contrôleur, écrivez le code suivant:

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;
    }
}

Ce code fonctionne pour moi, j'espère qu'il vous aidera aussi.

ND17
la source
Est-ce leur besoin d'être un fichier xml lié à l'action dans mon module @ ND17
Learing_Coder
@PranayK Dites-moi d'abord quel est votre problème, si votre action n'utilise aucun rendu de page, pas besoin d'ajouter de fichier XML
ND17
si je suppose que je suis venu à la page de liste quand j'ai besoin de revenir en arrière, à la page d'accueil je reçois le refererurl a la page de liste url @ ND17
Learing_Coder
Lorsque vous devez revenir en arrière, quelle action effectuez-vous? par exemple cliquer sur quelque chose?
ND17
oui j'ai le lien Retour sur le clic j'ai besoin de revenir à la page d'accueil il reste dans la liste Page seulement. @ ND17
Learing_Coder
15

Cela pourrait également être une réponse valide sous une forme plus courte Magento 2.0.4

espace de noms Vendorname \ Modulename \ Controller \ Adminhtml \ Index;
classe Fetch étend \ Magento \ Backend \ App \ Action
{
    fonction publique execute ()
    {
        // TODO: implémente la méthode execute ().
        $ this -> _ redirect ($ this -> _ redirect-> getRefererUrl ());
    }
}
oliver
la source
La executeméthode devrait renvoyer un Magento\Framework\Controller\ResultInterfaceou un Magento\Framework\App\ResponseInterface. Heureusement, la _redirectméthode fait l'un de ceux-ci, c'est donc conseillé:return $this->_redirect($this->_redirect->getRefererUrl());
clockworkgeek
cool pour le backend. fonctionne très bien avec Magento 2.2.6.
jaydip sinh Parmar
Il s'agit de la bonne méthode pour rediriger vers la page précédente. Merci
Avesh Naik
2

Veuillez utiliser ce code dans votre classe de contrôleur:

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

Ici, resultRedirectFactory est une variable de classe qui peut être héritée dans votre classe de ses parents.

Pour vérifier si l'URL de référence est définie ou non, veuillez d'abord imprimer la variable $ _SERVER. Ce code fonctionne pour moi.

Sumit Verma
la source
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
la source