Yii - 分页中的人类可读网址

时间:2014-09-26 21:40:55

标签: php yii pagination

我添加了一些UrlManager规则,以便像

这样的页面

/category/view?id=1

现在看起来像

/1/cell-phones/

但问题是CGridView pagination仍然看起来很丑陋

/category/view?id=1&page=2

如何更改它看起来像这样?

/1/cell-phones/page/2

我应该更改/覆盖CController的createUrl方法,还是有更好的方法?

我对具有分页的页面的规则是

'<id:\d+>/<title>' => 'category/view/id/<id>',

和完整的设置规则是

'<id:\d+>/<title>/*' => 'category/view/id/<id>',
'<controller:\w+>/<id:\d+>'=>'<controller>/view',
'<controller:\w+>/<action:\w+>/<id:\d+>'=>'<controller>/<action>',
'<controller:\w+>/<action:\w+>'=>'<controller>/<action>',
'/<id:\d+>/<title1>/<title2>' => 'product/view/id/<id>',
'/<id:\d+>/<title1>/<title2>/<p_action:\w+>' => 'product/view/id/<id>/render/<p_action>',
'/<id:\d+>/<title1>/<title2>/<p_action:\w+>/parent_comment_id/<parent_comment_id:\d+>' =>      'product/view/id/<id>/render/<p_action>/parent_comment_id/<parent_comment_id>',

1 个答案:

答案 0 :(得分:1)

假设您使用了以下路线配置 -

'<module:\w+>/<controller:\w+>/<id:\d+>'=>'<module>/<controller>/view',

因此,形成的网址似乎是 - /category/view?id=1&page=2

现在尝试添加/*以允许任何进一步的查询字符串美化。

修改 -

'<module:\w+>/<controller:\w+>/<id:\d+>/*'=>'<module>/<controller>/view',

请检查/*之后添加的...<id:\d+>是否<id:\d+>/*

应该这样做。