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.