Як перенаправити на попередню сторінку magento 2?


14

Як перенаправити на попередню сторінку з моїх спеціальних дій у magento 2

Відповіді:


42

У своєму контролері напишіть наступний код:

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

Цей код працює для мене. Сподіваюся, він теж допоможе вам.


Чи потрібно їх XML-файл пов’язаний з дією в моєму модулі @ ND17
Learing_Coder

@PranayK Спочатку скажіть, у чому полягає ваша проблема, якщо ваша дія не використовується для візуалізації сторінки, не потрібно додавати XML-файл
ND17,

якщо припустимо, що я прийшов на сторінку списку, коли мені потрібно повернутися, на домашню сторінку я отримую у refererurl список URL-адрес списку @ ND17
Learing_Coder

Коли вам потрібно повернутись, якусь дію ви виконуєте? наприклад, натисніть на щось?
ND17

так, у мене є посилання "Назад" при натисканні, мені потрібно повернутися на головну сторінку, вона залишається лише у списку. @ ND17
Learing_Coder

15

Це також може бути вірною відповіддю у скороченому вигляді Magento 2.0.4

простір імен ім'я постачальника \ ім'я модуля \ контролер \ адміністратор \ індекс;
клас Fetch розширюється \ Magento \ Backend \ App \ Action
{
    виконання публічної функції ()
    {
        // TODO: метод реалізації Execute ().
        $ this -> _ redirect ($ this -> _ redirect-> getRefererUrl ());
    }
}

Очікується, що executeметод поверне або a, Magento\Framework\Controller\ResultInterfaceабо a Magento\Framework\App\ResponseInterface. На щастя, _redirectметод є одним із таких, тому це доцільно:return $this->_redirect($this->_redirect->getRefererUrl());
годинниковий годинник

круто для бекенда. чудово працює з Magento 2.2.6.
jaydip sinh

Це правильний метод перенаправлення на попередню сторінку. Дякую
Avesh Naik

2

Будь ласка, використовуйте цей код у вашому класі контролера:

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

Тут resultRedirectFactory є змінною класу, яка може бути успадкована у вашому класі від батьків.

Щоб перевірити, встановлена ​​чи ні URL-адреса перенаправлення, спочатку надрукуйте змінну $ _SERVER. Цей код працює для мене.


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;
}
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.