2009-08-12 122 views
0

由於的問題,我經歷了這裏:Zend_ Controller_ Router_Exception: 「xyz」 is not specified改寫路由映射到默認路由

我想有這樣的路線:

":module/:controller/:id" 

,並將其映射到這個:

":module/:controller/:action/id/$id" 

Zend Framework有沒有可能做到這一點?我不想將瀏覽器轉發到該網址。我只想告訴Zend Framework如何處理這條路線。

至於爲什麼我想這樣做,你可以找到他們在這個鏈接的SO問題。

回答

0

是的,這是可能的。

resources.router.routes.something.type = "Zend_Controller_Router_Route_Regex" 
resources.router.routes.something.route = "mymodule/mycontroller/([0-9]+)" 
resources.router.routes.something.defaults.module = "mymodule" 
resources.router.routes.something.defaults.controller = "mycontroller" 
resources.router.routes.something.defaults.action = "myaction" 
resources.router.routes.something.map.1 = "id" 

我不熟悉的:在我的application.ini我使用正則表達式這種方式指定我的路線:路線定義的「變量」的方式,但你可以從我的例子來設置默認控制器的能力,模塊和動作,而不需要在url中明確定義它們。

+0

這並不能解決我的問題。我想將路線映射到另一條路線。 在您的示例中,您將創建另一條靜態放置模塊,控制器和操作的路線。我想保留模塊,控制器和操作的變量。 – 2009-08-12 19:34:20

+0

我沒有說它會解決它。我從我的代碼中提供了一個例子,你應該希望能夠用它來建立你的路線,除了向你展示它可能將一條路線映射到另一條路線。 「([a-zA-Z] +)/([a-zA-Z] +)/([0-9] +)可以輕鬆替換」mymodule/mycontroller /([0-9] +) 「然後映射1到模塊,2映射到控制器,3映射到ID。 – Mark 2009-08-12 21:03:51