【问题标题】:Codeigniter route helpCodeigniter 路由帮助
【发布时间】:2023-05-03 22:14:01
【问题描述】:

我需要一个 codeigniter 路由,所以以下所有网址:

admin/users/page/:num
admin/accounts/page/:num
members/results/page/:num
products/page/:num

转发给

admin/users/index
admin/accounts/index
members/results/index
products/index

分别。我只想要一个可以解决问题的正则表达式,而不是我每次都手动设置路线。

具体来说,任何以page/:num 结尾的url 都应该转发到其各自控制器的索引方法。 :num 我的意思是任何数字。

这可能吗?

【问题讨论】:

    标签: php regex codeigniter


    【解决方案1】:

    我真的不明白你为什么要这样做。 (我假设您想从 URL 获取页码)

    将这些行添加到您的system/application/config/routes.php(想不出单行解决方案):

    $route['([a-z]+)/page/:num'] = "$1/index";
    $route['([a-z]+)/([a-z]+)/page/:num'] = "$1/$2/index";
    

    cmiiw.

    【讨论】:

    • 谢谢,就像一个魅力!我想要这个的原因是因为我的自定义分页库创建了 /path/to/controller/page/$page 之类的链接。而且我不想手动设置每条路线。有没有更好的方法来做到这一点?
    • 如果您使用控制器的索引方法,则不会。如果您使用像search 这样的方法,那么/users/search/page/7 将被转换为类“用户”、方法“搜索”和参数“页面”和 7。
    • 可能想要更改当前分页库的工作方式,因为这样,您将被限制使用您在配置中指定的一种方法(在本例中为索引).. 是的,我知道 CI 的默认分页有时不受欢迎。
    • 我很满意。根据 37 个信号的配置约定:)
    • 信不信由你,你的评论刚刚帮助我克服了我目前面临的这个障碍。显然我喜欢想太多。谢谢