Yanıtlar:
Denetleyicinize aşağıdaki kodu yazın:
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;
}
}
Bu kod benim için çalışıyor, umarım size de yardımcı olur.
Bu aynı zamanda daha kısa bir formda geçerli bir cevap olabilir Magento 2.0.4
ad alanı Vendorname \ Modulename \ Controller \ Adminhtml \ Index; class Fetch \ Magento \ Backend \ App \ Action klasörünü genişletir { genel işlev execute () { // YAPILACAKLAR: execute () yöntemini uygular. $ this -> _ yönlendirme ($ this -> _ redirect-> getRefererUrl ()); } }
execute
Yöntem A ya geri beklenen Magento\Framework\Controller\ResultInterface
ya da Magento\Framework\App\ResponseInterface
. Neyse ki _redirect
yöntem bunlardan birini yapar bu yüzden bu tavsiye edilir:return $this->_redirect($this->_redirect->getRefererUrl());
Lütfen bu kodu denetleyici sınıfınızda kullanın:
$resultRedirect = $this->resultRedirectFactory->create();
$resultRedirect->setRefererUrl();
return $resultRedirect;
İşte resultRedirectFactory orada ebeveynlerden sınıfınızda miras edilebilecek bir sınıf değişkendir.
Yönlendirme URL'sinin ayarlanıp ayarlanmadığını kontrol etmek için, lütfen önce $ _SERVER değişkenini yazdırın. Bu kod benim için çalışıyor.
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;
}