วิธีใช้ฟังก์ชัน getUrl () ใน Magento 2


11

ฉันสามารถโทรหาMage :: getUrl ()โดยตรงโดยใช้$ this->ใน Magento2 ได้ไหม

ฉันจะใช้โค้ดด้านล่างใน Magento2 ได้อย่างไร

$link = Mage::getUrl('*/*/*', array('_current'=>true, '_use_rewrite'=>true, '_query'=>$this_params));


คุณสามารถปิดคำถามได้ทันทีหลังจากยอมรับคำตอบจากด้านล่าง
Rakesh Jesadiya

คำตอบ:


18

ในบล็อกคุณสามารถใช้$this->getUrl()กับพารามิเตอร์ที่คุณรู้จักจาก Magento 1 ในเทมเพลตให้ใช้$block->getUrl()แทน

บล็อกนอกและแม่แบบที่คุณต้องการเข้าถึง\Magento\Framework\UrlInterfaceดังนั้นถ้ามันยังไม่สามารถใช้ได้ในระดับปัจจุบันเพิ่มเป็นพารามิเตอร์นวกรรมิกกำหนดให้ใช้แล้ว$this->urlBuilder$this->urlBuilder->getUrl()


2
ก่อนที่จะเพิ่มเป็นพารามิเตอร์ตัวตรวจสอบว่า $ context มีอินสแตนซ์ที่เข้าถึงได้ของ urlBuilder แล้ว
LucScu

5

คุณสามารถเรียกวิธีนี้ใน magento 2 โดยใช้วิธีด้านล่าง

//define query array pass to url
    $query = ['str1' => 'value1', 'str2' => 'value2',];
    $link = $block->getUrl('*/*/*', ['_current' => true, '_use_rewrite' => true, '_query' => $query]);

นอกจากนี้คุณยังสามารถส่งผ่านค่าการกระทำแทนที่จะเป็น*/*/*URL ด้านบนเช่น'ลูกค้า / บัญชี / การเข้าสู่ระบบ'ตามการกระทำที่คุณต้องการ


0

คุณสามารถใช้สิ่งนี้ใน Magento 2 เช่น

$block->getUrl('*/*/*', ['_current' => true, '_use_rewrite' => true])

จะใช้งานอย่างไรในไฟล์ Block? ฉันพยายามรับคอนโทรลเลอร์อีกตัวในฟังก์ชัน backUrl
jafar pinjar
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.