Come reindirizzare alla pagina precedente magento 2?


14

Come reindirizzare alla pagina precedente dalla mia azione personalizzata in magento 2

Risposte:


41

Nel tuo controller scrivi il seguente codice:

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

Questo codice funziona per me. Spero che sia di aiuto anche per te.


È il loro bisogno di essere un file XML correlato all'azione nel mio modulo @ ND17
Learing_Coder

@PranayK Prima dimmi qual è il tuo problema, se la tua azione non viene utilizzata per il rendering di alcuna pagina di quanto non sia necessario aggiungere il file XML
ND17

se suppongo di essere venuto alla pagina dell'elenco quando devo tornare indietro, alla home page sto ottenendo il refererurl ha la pagina dell'elenco url @ ND17
Learing_Coder

Quando devi tornare indietro, esegui qualche azione? per esempio fare clic su qualcosa?
ND17

Sì, ho il collegamento Indietro al clic. Devo tornare alla home page. Rimane solo nell'elenco. @ ND17
Learing_Coder

15

Questa potrebbe anche essere una risposta valida in una forma più breve Magento 2.0.4

namespace Vendorname \ Modulename \ Controller \ Adminhtml \ Index;
class Fetch estende \ Magento \ Backend \ App \ Action
{
    funzione pubblica execute ()
    {
        // TODO: implementare il metodo execute ().
        $ This -> _ redirect ($ this -> _ redirect-> getRefererUrl ());
    }
}

Il executemetodo dovrebbe restituire a Magento\Framework\Controller\ResultInterfaceo a Magento\Framework\App\ResponseInterface. Fortunatamente il _redirectmetodo fa uno di questi, quindi è consigliabile:return $this->_redirect($this->_redirect->getRefererUrl());
clockworkgeek,

fantastico per il backend. funziona alla grande con Magento 2.2.6.
jaydip sinh Parmar,

Questo è il metodo corretto per reindirizzare alla pagina precedente. Grazie
Avesh Naik,

2

Utilizzare questo codice nella classe del controller:

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

Qui resultRedirectFactory è una variabile di classe che può essere ereditata nella tua classe dai genitori.

Per verificare se l'URL di riferimento è impostato o meno, stampare prima la variabile $ _SERVER. Questo codice funziona per me.


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;
}
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.