【问题标题】:CodeIgniter detect if Default Controller route was usedCodeIgniter 检测是否使用了默认控制器路由
【发布时间】:2013-06-17 21:09:49
【问题描述】:

在 CodeIgniter 中,有没有办法知道用户是否被发送到默认控制器,因为路由将他们发送到那里,或者因为用户实际上在 URL 栏中输入了该控制器。

换句话说,---.com/home 和 ---.com 都可以将您发送到“家庭”控制器,因为您已经设置了

$route['default_controller'] = 'home';

但只有 ---.com/ 会调用 CI 来获取“default_controller” 那么,我该如何检测呢?如果有一个布尔函数可以告诉我这一点。

【问题讨论】:

    标签: php codeigniter codeigniter-routing


    【解决方案1】:

    您应该能够使用$this->uri->total_segments() ... 或 URI 类中的其他函数之一来推断此 ...

    if($this->uri->total_segments() === 0){
        //user came in by default_controller
    }
    

    URI Class Docs

    【讨论】:

    • 这可以去哪里?我想远离核心,但在重新路由之前检测是否发生?
    • 这必须在默认控制器的索引函数中。为什么要在它发生之前检测?到那时,听起来你需要设置不同的路由规则。
    • 嘿,这行得通。我正在使用规则,其中权限和路由正在争夺具有特定权限的用户将去哪里的决定。但从长远来看,我可能想尝试您关于其他路由规则的第二个建议。谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-06-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-20
    • 1970-01-01
    相关资源
    最近更新 更多