【问题标题】:Yii - human readable url in paginationYii - 分页中人类可读的 url
【发布时间】:2014-09-27 23:53:54
【问题描述】:

我已经添加了一些 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>',

完整的tof规则是

'<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>',

【问题讨论】:

    标签: php yii pagination


    【解决方案1】:

    假设你使用了以下路由配置-

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

    所以形成的 URL 看起来像 - /category/view?id=1&amp;page=2

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

    修改-

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

    请检查...&lt;id:\d+&gt;之后添加的/*,使其成为&lt;id:\d+&gt;/*

    它应该可以解决问题。

    【讨论】:

    • 谢谢,但它没有帮助,网址保持不变,我更新了问题以显示我使用的规则,也许它会有所帮助......
    • 附加 /* 以获取所有规则。它应该工作。在这里回答之前我已经测试过了。
    • 将 /* 添加到所有规则中,并且它部分工作,现在分页 url 看起来像这个 category/1/title/cell-phones/page/2,但我需要摆脱“ title”和“cagegory”部分...我的目标是/1/cell-phones/page/2,+1 帮助我进步
    猜你喜欢
    • 1970-01-01
    • 2011-04-30
    • 1970-01-01
    • 2016-01-08
    • 2019-02-08
    • 1970-01-01
    • 1970-01-01
    • 2013-07-06
    • 1970-01-01
    相关资源
    最近更新 更多