Tạo URL trong Custom Helper Xem Zend
Điều này có vẻ đơn giản, nhưng tôi đã đập đầu tôi cố gắng tạo ra một URL trong một helper xem tùy chỉnh trong Zend Framework . Tôi đã định tuyến thiết lập mà được các module từ tên miền phụ được sử dụng vì vậy tôi không thể sử dụng một URL đơn giản hardcoded.
Về cơ bản, nhưng cách gọi một thể hiện của bộ điều khiển phía trước để lấy các bộ định tuyến và lắp ráp một địa chỉ có thể có của nó. Tập hợp là chức năng được sử dụng trong các helper xem. URL được xây dựng từ một loạt các mô-đun, điều khiển, hành động, vv, theo sau là một tham số thứ hai của các tuyến đường để sử dụng. Mã này là như sau:
<? Php / ** * Xem trợ giúp mà trả về liên kết URL thể loại * * @ Tác giả Lloyd Watkin * @ Kể từ 25/01/2010 * @ Gói ViewHelper * @ Subpackage LinksUrl * / lớp Pro_View_Helper_LinksUrl mở rộng Zend_View_Helper_Abstract { / ** * Trả về liên kết URL thể loại * * @ Param Doctrine_Record $ loại * @ Param string $ module * @ Param string $ điều khiển * @ Param string $ hành động * @ Trả lại chuỗi Url * / chức năng công cộng linksUrl (thể loại, $ module = 'www', $ Controller = 'liên kết', $ action = 'chỉ số') { $ Router = Zend_Controller_Front:: getInstance () -> getRouter (); trả lại $ router-> lắp ráp (array ( 'Module' => $ module, 'Điều khiển' => $ điều khiển, 'Hành động' => $ hành động, 'Loại' => "{$ thể loại-> id} - {$ thể loại-> tên}", ), 'Www-index'); } }
Một cách khác để làm điều này là để gọi Zend_View_Helper_Url chính nó và gọi phương thức Url (nếu bạn muốn sử dụng người giúp đỡ mình). Điều này có thể được thực hiện bằng cách sử dụng đoạn mã sau:
<? Php / ** * Xem trợ giúp mà trả về liên kết URL thể loại * * @ Tác giả Lloyd Watkin * @ Kể từ 25/01/2010 * @ Gói ViewHelper * @ Subpackage LinksUrl * / lớp Pro_View_Helper_LinksUrl mở rộng Zend_View_Helper_Abstract { / ** * Trả về liên kết URL thể loại * * @ Param Doctrine_Record $ loại * @ Param string $ module * @ Param string $ điều khiển * @ Param string $ hành động * @ Trả lại chuỗi Url * / chức năng công cộng linksUrl (thể loại, $ module = 'www', $ Controller = 'liên kết', $ action = 'chỉ số') { $ Link = mới Zend_View_Helper_Url (); trả lại $ link-> url (array ( 'Module' => $ module, 'Điều khiển' => $ điều khiển, 'Hành động' => $ hành động, 'Loại' => "{$ thể loại-> id} - {$ slug}", ), 'Www-index'); } }
Cả hai gần như giống hệt nhau. Không phải là một điều khó thực hiện trong khuôn khổ nhưng có thể bắt bạn ra;)


















































Bạn biết bạn có thể có chỉ sử dụng chế độ xem đối tượng có sẵn bằng cách mở rộng Zend_View_Helper_Abstract để kêu gọi sự giúp đỡ địa chỉ hiện tại, hơn là tạo một hình mới.
Chỉ cần sử dụng $ url này xem->-> (...);