วิธีการเปลี่ยนเส้นทางไปยังหน้าก่อนหน้า 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แบบสั้น

เนมสเปซ Vendorname \ Modulename \ Controller \ Adminhtml \ ดัชนี;
การดึงข้อมูลระดับขยาย \ Magento \ Backend \ App \ Action
{
    ฟังก์ชั่นสาธารณะรัน ()
    {
        // TODO: ใช้เมธอด execute ()
        $ this -> _ เปลี่ยนเส้นทาง ($ นี้ -> _ redirect-> getRefererUrl ());
    }
}

executeวิธีการที่คาดว่าจะกลับมาอย่างใดอย่างหนึ่งหรือMagento\Framework\Controller\ResultInterface Magento\Framework\App\ResponseInterfaceโชคดีที่_redirectวิธีการหนึ่งในนั้นจึงแนะนำให้เลือก:return $this->_redirect($this->_redirect->getRefererUrl());
clockworkgeek

เย็นสำหรับแบ็กเอนด์ ทำงานได้ดีกับ Magento 2.2.6
jaydip sinh Parmar

นี่เป็นวิธีที่ถูกต้องในการเปลี่ยนเส้นทางไปยังหน้าก่อนหน้า ขอบคุณ
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;
}
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.