Wie kann ich zur vorherigen Seite von Magento 2 weiterleiten?

13

So leiten Sie von meiner benutzerdefinierten Aktion in Magento 2 zur vorherigen Seite weiter

Neuling
quelle

Antworten:

40

In Ihrem Controller schreiben Sie folgenden Code:

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

Dieser Code funktioniert für mich. Hoffentlich hilft er Ihnen auch.

ND17
quelle
Ist ihre Notwendigkeit, XML-Datei im Zusammenhang mit Aktion in meinem Modul @ ND17
Learing_Coder
@PranayK Sagen Sie mir zunächst, was Ihr Problem ist. Wenn Ihre Aktion für kein Seitenrendering verwendet wird, müssen Sie keine XML-Datei hinzufügen
ND17
wenn nehme ich zur Liste Seite kam , als ich brauche , um zurück zu gehen, zur Startseite ich die RefererUrl bin immer hat Liste Seite url @ ND17
Learing_Coder
Wenn Sie zurückgehen müssen, führen Sie eine Aktion aus? Zum Beispiel auf etwas klicken?
ND17
Ja, ich habe einen Link "Zurück" auf "Klicken". Ich muss zur Startseite zurückkehren. Es bleibt nur auf der Listenseite. @ ND17
Learing_Coder
15

Dies könnte auch eine gültige Antwort in kürzerer Form Magento 2.0.4 sein

Namespace Vendorname \ Modulname \ Controller \ Adminhtml \ Index;
Klasse Fetch erweitert \ Magento \ Backend \ App \ Action
{
    public function execute ()
    {
        // TODO: Implementiere die Methode execute ().
        $ this -> _ redirect ($ this -> _ redirect-> getRefererUrl ());
    }
}
oliver
quelle
Es executewird erwartet, dass die Methode entweder a Magento\Framework\Controller\ResultInterfaceoder a zurückgibt Magento\Framework\App\ResponseInterface. Glücklicherweise macht die _redirectMethode eine von denen, so dass dies ratsam ist:return $this->_redirect($this->_redirect->getRefererUrl());
clockworkgeek
cool für das Backend. funktioniert super mit Magento 2.2.6.
Jaydip Sinh Parmar
Dies ist die richtige Methode, um zur vorherigen Seite umzuleiten. Vielen Dank
Avesh Naik
2

Bitte verwenden Sie diesen Code in Ihrer Controller-Klasse:

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

Hier ist resultRedirectFactory eine Klassenvariable, die in Ihrer Klasse von ihren Eltern geerbt werden kann.

Um zu überprüfen, ob die Verweis-URL festgelegt ist oder nicht, drucken Sie zuerst die Variable $ _SERVER. Dieser Code funktioniert für mich.

Sumit Verma
quelle
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
quelle