我添加了一些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>',
答案 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+>/*
应该这样做。