Cách sử dụng hàm getUrl () trong Magento 2


10

Tôi có thể gọi Mage :: getUrl () trực tiếp bằng $ this-> trong Magento2 không?

Làm thế nào tôi có thể sử dụng mã dưới đây trong Magento2?

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


Bạn có thể thoải mái đóng câu hỏi sau khi chấp nhận câu trả lời từ bên dưới.
Rakesh Jesadiya

Câu trả lời:


17

Trong một khối, bạn có thể sử dụng $this->getUrl()với các tham số mà bạn biết chúng từ Magento 1. Trong một mẫu, sử dụng $block->getUrl()thay thế.

Các khối và mẫu bên ngoài, bạn cần truy cập \Magento\Framework\UrlInterface, vì vậy nếu nó chưa có sẵn trong lớp hiện tại, hãy thêm nó làm tham số của hàm tạo, gán nó cho $this->urlBuilder, sau đó sử dụng $this->urlBuilder->getUrl().


2
trước khi thêm nó dưới dạng kiểm tra tham số hàm tạo nếu $ bối cảnh đã có thể truy cập urlBuilder.
LucScu

5

Bạn có thể chỉ cần gọi phương thức này trong magento 2 bằng cách sử dụng dưới đây,

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

Bạn cũng có thể chuyển giá trị hành động thay vì */*/*trong url trên, như 'khách hàng / tài khoản / đăng nhập' theo hành động cần thiết của bạn.


0

Bạn có thể sử dụng điều này trong Magento 2 như

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

Làm thế nào để sử dụng nó trong tập tin Block? tôi đang cố gắng để có được một bộ điều khiển khác trong chức năng backUrl.
jafar pinjar
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.