Risposte:
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.
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 ()); } }
execute
metodo dovrebbe restituire a Magento\Framework\Controller\ResultInterface
o a Magento\Framework\App\ResponseInterface
. Fortunatamente il _redirect
metodo fa uno di questi, quindi è consigliabile:return $this->_redirect($this->_redirect->getRefererUrl());
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.
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;
}