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.