【问题标题】:Codeigniter 2 Routing with undeterminded number of segments/parametersCodeigniter 2 具有不确定数量的段/参数的路由
【发布时间】:2012-07-12 09:13:00
【问题描述】:

我正在使用 Codeigniter 2,目前正在使用“路由器”配置文件来设置路由。 我也在使用 IonAuth 库。 我有一个类似的代码:

    $route['admin/(login|logout|change_password|forgot_password|reset_password
|activate|deactivate|create_user)'] = "auth/$1";

现在我的问题是,在某些 IonAuth 方法中,没有 1 个或 2 个参数。 如果我尝试访问以下网址:

http://localhost/ion_auth_try/admin/deactivate/1

我收到 404 错误。

'deactivate' 方法的签名是

function deactivate($id = NULL)

我已经尝试解决这个问题很长时间了。我被卡住了。

【问题讨论】:

    标签: php codeigniter routes ion-auth


    【解决方案1】:

    如果我是你,我会这样做。

    $route['admin/(:any)'] = "auth/$1";
    

    更简单,完美解决问题。使用上述规则,您可以同时访问admin/some_methodadmin/some_other_method/with_a_parameter。但是,您应该注意,如果您要通过输入 admin 来访问该页面,则需要添加以下内容:

    $route['admin'] = "auth";
    

    查看文档:http://codeigniter.com/user_guide/general/routing.html

    【讨论】:

    • 这是我的问题:假设我有代码说
      $route['admin/deactivate/(:num)'] = "auth/$1";
      我想访问'admin/deactivate/',但我不能。
    • 你真的试过把它改成$route['admin/(:any)'] = "auth/$1";吗?
    • 是的,我有。我想这样做的唯一方法是编写大量 Routes 配置。我想知道是否有办法避免或者使用一些正则表达式来动态匹配它。
    • 另外我没有做 $route['admin/(:any)'] = "auth/$1";因为我已经有一个管理员控制器。我希望将上述特定请求重定向到身份验证控制器,其余的将转到管理控制器。
    猜你喜欢
    • 2016-01-13
    • 1970-01-01
    • 1970-01-01
    • 2018-05-31
    • 2014-04-18
    • 2018-02-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多