Làm thế nào để chuyển hướng đến trang trước magento 2?


14

Cách chuyển hướng đến trang trước từ hành động tùy chỉnh của tôi trong magento 2

Câu trả lời:


41

Trong Bộ điều khiển của bạn viết mã sau đây:

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

Mã này làm việc cho tôi. Hy vọng nó cũng sẽ giúp bạn.


Có phải nhu cầu của họ là tệp xml liên quan đến hành động trong mô-đun của tôi @ ND17
Lears_Coder

@PranayK Trước tiên hãy cho tôi biết vấn đề của bạn là gì, Nếu hành động của bạn không sử dụng cho bất kỳ trang nào được kết xuất hơn là không cần thêm tệp XML
ND17

nếu giả sử tôi đã đến trang danh sách khi tôi cần quay lại, đến trang chủ tôi đang nhận được người giới thiệu có url trang danh sách @ ND17
Lears_Coder

Khi bạn cần quay lại bất kỳ hành động nào bạn đang thực hiện? ví dụ nhấp vào cái gì?
ND17

có Tôi có liên kết Quay lại khi nhấp, tôi cần quay lại trang chủ. Nó chỉ nằm trong danh sách Trang. @ ND17
Lear_Coder

15

Đây cũng có thể là một câu trả lời hợp lệ ở dạng ngắn hơn Magento 2.0.4

không gian tên Vendorname \ Modulename \ Controller \ adminhtml \ Index;
lớp Tìm nạp kéo dài \ Magento \ Backend \ App \ Action
{
    thực thi chức năng công cộng ()
    {
        // TODO: Thực hiện phương thức exec ().
        $ this -> _ redirect ($ this -> _ redirect-> getRefererUrl ());
    }
}

Các executephương pháp dự kiến sẽ trở lại hoặc là một Magento\Framework\Controller\ResultInterfacehoặc một Magento\Framework\App\ResponseInterface. May mắn thay, _redirectphương pháp này thực hiện một trong những điều đó nên được khuyến khích:return $this->_redirect($this->_redirect->getRefererUrl());
clockworkgeek

mát mẻ cho các phụ trợ. hoạt động tuyệt vời với Magento 2.2.6.
jaydip sinh Parmar

Đây là phương pháp chính xác để chuyển hướng đến trang trước. Cảm ơn bạn
Avesh Naik

2

Vui lòng sử dụng mã này trong lớp trình điều khiển của bạn:

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

Ở đây resultRedirectFactory là một biến lớp có thể được kế thừa trong lớp của bạn từ đó cha mẹ.

Để kiểm tra xem URL giới thiệu có được đặt hay không, vui lòng in biến $ _SERVER trước. Mã này đang làm việc cho tôi.


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;
}
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.