Tôi biết đã có câu trả lời được chấp nhận nhưng tôi vẫn đăng bài này để giảm bớt gánh nặng cho người mới bắt đầu như tôi.
Tôi sử dụng thông minh làm trình xem hình ảnh và trong thông minh bạn không thể sử dụng mã php trong chế độ xem, do đó, mọi thứ phải được thực hiện trong bộ điều khiển, phân bổ chúng trong biến rồi chuyển chúng sang chế độ xem.
Bạn có thể sử dụng này:
$url = $this->url()->fromRoute('route',array('name'=>'route-name'));
Nếu bạn đang theo dõi hướng dẫn của zend 2, nó sẽ là như thế này:
$url = $this->url()->fromRoute('album',array('action'=>'add'));
$url = $this->url()->fromRoute('album',array('action'=>'edit'));
$url = $this->url()->fromRoute('album',array('action'=>'delete'));
này sẽ có giá trị là:
/zf2/index.php/album/add
/zf2/index.php/album/edit
/zf2/index.php/album/delete
Như bạn có thể thấy, bạn cần phải thêm tên máy chủ vào đó, bạn có thể thực hiện bằng cách sử dụng chúng trước khi tạo tuyến đường url:
$url = $uri = $this->getRequest()->getUri();
$url = sprintf('%s://%s', $uri->getScheme(), $uri->getHost());
Nhìn chung, đoạn mã sẽ giống như thế này:
$url = $uri = $this->getRequest()->getUri();
$url = sprintf('%s://%s', $uri->getScheme(), $uri->getHost());
$url .= $this->url()->fromRoute('album',array('action'=>'add'));
Để sản xuất:
http://yourservername/zf2/index.php/album/add
Hope this helps người mới bắt đầu sử dụng zf2
không đúng sự thật. bạn có thể sử dụng trợ giúp xem trong bộ điều khiển, nhưng ofc không phải là ý tưởng hay: $ uVH = $ this-> getServiceLocator() -> get ('viewhelpermanager') -> get ('url'); $ routeUrl = $ uvh ('tên tuyến đường', mảng ('param1' => 'param1')); v.v. –