2013-03-14 100 views
1

我人人誰在讀這篇文章,創建網址的分頁,排序和過濾器 - ZF

我是在互聯網上5分鐘前,我發現這是非常好的一個網址:

www.exemple.com/blog/rating.asc/2 

哪個有關:

blog => controller/action/module or anything 
rating => ordered by 
asc => order of list 
2 => current page 

我想知道我怎麼可以使用Zend_Controller_Router_Route類Zend框架的創建類似的URL。

對於我的網站,它會像:

www.exemple.com/portfolio/date.asc/2 

www.exemple.com/blog/author.desc/ (page optional, default 1) 

www.exemple.com/blog/ (default order: date.asc, page: 1) 

注:我不是正則表達式友好,所以我想要禁止,或者如果有人確切的表達,這將不勝感激。

回答

1

嘿,我不知道,如果你是使用INI進行配置,但這裏是我會做,如果我有一個:在ini文件

module  => blog 
controller => article 
action  => list 
// Parameter to get from the request in the controller 
// Note that those are the defaults in case you don't provide any parameters in the url 
sortBy => author 
order => asc 
page => 1 

; /www.exemple.com/blog/articles/author/desc/2 
resources.router.routes.whateverroutname.route = /blog/articles/:sortBy/:order/:page 
resources.router.routes.whateverroutname.defaults.module = blog 
resources.router.routes.whateverroutname.defaults.controller = article 
resources.router.routes.whateverroutname.defaults.action = list 
resources.router.routes.whateverroutname.defaults.sortBy = author 
resources.router.routes.whateverroutname.defaults.order = asc 
resources.router.routes.whateverroutname.defaults.page = 1 

希望這有助於:)

+0

嗯,這是相當不錯的,除了排序和順序不是用'/'而是用'.'來除。 – 2013-03-15 19:47:06

+1

Zend路由器根據路由匹配分離參數。匹配參數分隔符是「/」。也許你會寫自己的作家,會考慮「。」作爲參數分隔符和隱藏類似這樣的/blog/articles/:sortBy.:order/:page。牢記思想,即「。」標誌有時會用來區分CEO的單詞。因此,您的鏈接可能會被某些搜索引擎誤解。 – 2013-03-16 09:02:21

+0

好點!我會接受你的回答。 – 2013-03-16 16:26:46