2011-01-25 274 views
0

如何配置Zend_Controller_Router默認使用默認路由?無論出於何種原因未知,它都使用當前路線。默認使用Zend路由器路由

這是造成一些煩人的路由問題,我不想編輯數百個鏈接來明確使用默認路由是一種合理的解決方案來添加一個自定義路由。

+0

也許你應該添加一些你的代碼,一個請求的例子和你想要的路線因爲現在,你在說什麼d似乎沒有任何意義(默認路由 - 顧名思義 - *是*,好吧,默認路由)。順便說一句,你檢查[ZF - 默認路線](http://framework.zend.com/manual/en/zend.controller.router.html#zend.controller.router.default-routes)? – wimvds 2011-01-25 09:05:06

+0

我想他是指URL助手。 – 2011-01-25 10:25:51

回答

0

你的問題並不明顯,令人困惑,我會盡力。

我打算假設你不是指Zend_Controller_Route,但實際上是在討論你的觀點中產生的鏈接。

您可以使用baseUrl()這樣

<a href="<?=$this->baseUrl("about-us")?>">About Us</a> 

您可以設置baseUrl在你的引導這樣

Zend_Controller_Front::getInstance()->setBaseUrl("/"); 

如果在本地工作,你可能需要將其設置爲這樣的事情

Zend_Controller_Front::getInstance()->setBaseUrl("/my-app/public"); 

使用baseUrl() in您的觀點現在將使用該路徑基於所有網址。請記住,您必須將您的鏈接包含在baseUrl()中才能使用。

url()幫助程序對此沒有用處,它用於在希望維護請求對象的當前參數的情況下執行分頁等操作。

希望有所幫助。

0

從馬修威爾O'Phinney:

你上面引述的邏輯是內 彙編()方法。組裝()可能調用 有或沒​​有路由 已發生。默認情況下, 的假設是,如果沒有提供路由名稱 ,則使用當前匹配的路由 - 如果匹配是 從未執行過(或沒有路由匹配),則使用'默認'路由。

使用當前 匹配的路由的理由是,通常你會 相同的架構 內路由 - 作爲一個例子,如果你是一個RESTful的範式,你的大多數 鏈接將內當前 資源。如果在沒有指定路線我們是按照您的 建議,利用「默認」 路線(在 至少,這就是我理解你 說的話),因爲Rest_Route不是 默認路由,每一個呼叫 彙編()將需要使用 路由名稱 - 其他人會嘲笑導致「頭痛。「

就個人而言,我希望還是明確 和總是指定路線名稱; 這樣,我確切地知道什麼路線我在我 打靶裝配(),這 使得調試更加容易

聽起來像唯一的解決方案是設置每個鏈接的路由使用'默認',而不是將它留空。