【问题标题】:Why is codigniter method called when header redirect should prevent it为什么在标头重定向应该阻止它时调用codeigniter方法
【发布时间】:2018-01-30 22:32:59
【问题描述】:

我在使用 Codeigniter 和标头重定向版本 3.1.0 时遇到问题

我所有的控制器都是从一个名为 Page 的控制器扩展而来的。 页面是从 CI_Controller 扩展而来的。

在Page控制器的构造方法中,我加载了模型M_login。 然后我通过调用 M_login 模型中的一个方法来检查用户是否已登录。

我使用的结构:

/user  = folder inside of application/controllers
/modules = controller located inside folder user which extends Page controller
/view = method located inside controller class modules
/1 = parameter

现在的问题:当我调用例如 URL domain.com/user/modules/view/1.

它触发控制器模块并执行方法视图。 然而,这个控制器扩展了 Page 所以首先应该检查用户是否登录,因为它在 Page 控制器的构造函数中。如果用户没有登录,它应该做一个标头重定向到 /login 页面。

但在我的情况下,它确实从 Page 控制器中的 M_login 模型运行该方法,但也从 Modules 控制器执行 View 方法,然后显示错误,因此可以防止标头重定向重定向用户。

任何人都可以告诉我为什么 View 方法仍在执行,尽管在首先调用的 Page 控制器的构造函数中检查了用户是否登录。

我现在碰到了一堵砖墙,我想不通为什么。所有的帮助将不胜感激。如果你们需要更多信息,请告诉我。

亲切的问候

【问题讨论】:

    标签: php codeigniter redirect methods


    【解决方案1】:

    好的。正如您所说现在的问题:当我调用例如 URL domain.com/user/modules/view/1 时,我可以确定您使用的是普通的 CodeIgniter 框架。

    我触发它的原因是,普通 Codeigniter 框架不允许您使用控制器内的文件夹。

    但是您可以使用适合您的HMVC Codeigniter 3。

    否则

    你可以像这样使用路由来修改你的 URL /user/modules/view/1

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-09-14
      • 2019-08-09
      • 2017-12-01
      • 2017-12-16
      • 1970-01-01
      • 2012-06-07
      相关资源
      最近更新 更多