qiang,urlmanager里面可以用默认参数值吗??

比如我的文章列表

'category/<cid:\d+>-<page:\d>' => 'posts/list'

这样写的话,如果page为空的时候是无法匹配的,yii自带的分页助手第一页的链接的page参数是没有的,所以第一页总是无法匹配这条route,能不能在page这个参数没有值的时候,设置一个默认值(比如说1)呢?

个人感觉现在的urlManager没有Zend里面的router好用

是我没找到设置的地方还是就是没这个功能呢?

你需要再添加一条规则:

'category/<cid:\d+>' => 'posts/list'

yii的urlManager没Zend好用是可能的,因为yii支持的是双向路由,而zend的是单向的(zend的路由其实可以由apache rewrite rule替代)。

感谢qiang

只是这样感觉路由基本上都得写两条才行,不知道双倍的url路由会对性能影响很大吗?30条以内

zend的确实是可以用rewrite代替

的确是这样。不过如果你有其它类似的规则,你可以考虑把它们合并,例如:

'<controller:(post|product|user)>/<id:\d+>-<page:\d+>' => '<controller>/list',

'<controller:(post|product|user)>/<id:\d+>' => '<controller>/list'

ok,已经搞定,再次感谢