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

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.


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

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.


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;
}
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.