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

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.


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

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.


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;
}
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.