【问题标题】:CodeIgniter optional parameterCodeIgniter 可选参数
【发布时间】:2012-12-20 10:21:26
【问题描述】:

我正在尝试使用 CI 中的路由来创建注册表单

signup 被重新路由到user/signup

但是我的注册函数可以包含一个参数:function signup($type = 1)

如何通过路由选择此选项?我尝试了$route['signup/?(:num)'] = 'user/signup/$1';,但是当转到/signup 时,我得到了404,只有/signup/1/ 有效。

【问题讨论】:

    标签: codeigniter routing routes


    【解决方案1】:

    表达这一点的最清晰方式可能是声明两条路线:

    $route['signup'] = "user/signup";
    $route['signup/(:num)'] = "user/signup/$1";
    

    【讨论】:

    • 效果很好,没想到,我试图弄清楚如何使它成为可选的。谢谢!
    • 编辑似乎不起作用,它似乎没有发送参数
    • 谢谢,我想我更喜欢你的第一个解决方案,更容易阅读/记住。
    • @Wesley 谢谢!这个小技巧节省了很多时间!
    【解决方案2】:

    对于其他在适当时候阅读此内容的人 - 我相信答案应该是 $route['signup/?(:num)?'],这使得该数字也是可选的。我在其他方面也有类似的问题。

    【讨论】:

      【解决方案3】:

      @Ukuser32 的答案的问题在于它允许像 signup69 这样的 URI 被接受,在这种情况下这可能是无害的,但在一般情况下是不可取的。只需将斜线与捕获的 :num 一起放入

      $route['signup(/:num)?'] = "user/signup$1"
      

      请注意,如果您有多个可选段,则需要嵌套它们....

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2013-10-29
        • 2012-12-10
        • 2012-01-30
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多