【问题标题】:Is this a bad practice to add die() at the end of "Views" in CodeIgniter? [closed]在 CodeIgniter 的“视图”末尾添加 die() 是一种不好的做法吗? [关闭]
【发布时间】:2013-05-02 12:32:53
【问题描述】:

为了使事情正确并防止 CodeIgniter 在加载视图后加载另一个视图,我需要在视图末尾(页脚)添加 die()。这是一种不好的做法吗?这会导致任何问题吗?

这里发布的代码有点大,但我可以说有一个 if 语句加载一个视图,默认情况下该函数加载另一个视图。因此,当 if 语句通过时,它会加载定义的视图,然后函数在其后加载默认视图。我可以在我的控制器中使用 die() 但它给了我一个空白页,这意味着 die() 在加载视图之前被执行。而且我也不能使用redirect()。

【问题讨论】:

  • 听起来你做错了什么,只会加载你要求的视图。
  • 你能发一些代码吗
  • 这里发布的内容有点大,但我可以说有一个if statement 会加载一个视图,默认情况下该函数会加载另一个视图。因此,当if statement 被传递时,它会加载定义的视图,然后函数在其后加载默认视图。我可以在我的控制器中使用die(),但它给了我一个空白页,这意味着die() 在加载视图之前已被执行。而且我也不能使用redirect()。

标签: php codeigniter codeigniter-2 die


【解决方案1】:

这是一种不好的做法。控制器级别的方法结束并不是与请求相关的代码执行的实际结束。 Codeignitor 的设置是加载一个控制器,然后调用它的方法,然后在方法执行完成后执行其他代码。

除了CodeIgnitor内部代码,还有钩子

http://ellislab.com/codeigniter/user-guide/general/hooks.html

如果你定义了“后控制器”钩子,它会在控制器方法完成后执行,如果你在代码中输入die,这些钩子将不会被执行。

【讨论】:

    【解决方案2】:

    这是一种不好的做法,因为在 die 之后不会执行任何代码。 假设你有一些代码(Hooks)在加载视图后执行,它不会执行。

    【讨论】:

      【解决方案3】:

      如果你使用 die() 意味着应该有一些原因。您能告诉我为什么要在 CI 视图的末尾使用它吗?

      【讨论】:

        猜你喜欢
        • 2019-05-01
        • 1970-01-01
        • 1970-01-01
        • 2017-05-19
        • 1970-01-01
        • 1970-01-01
        • 2014-07-27
        • 2017-05-08
        • 1970-01-01
        相关资源
        最近更新 更多