【发布时间】:2009-10-09 14:34:14
【问题描述】:
我编写了一个认证类控制器,其中包含一个检查用户登录状态的方法,如果他/她没有登录,则将他重定向到登录页面。
我需要从其他控制器方法调用此函数来验证用户。有什么好的方法吗?
【问题讨论】:
标签: php codeigniter
我编写了一个认证类控制器,其中包含一个检查用户登录状态的方法,如果他/她没有登录,则将他重定向到登录页面。
我需要从其他控制器方法调用此函数来验证用户。有什么好的方法吗?
【问题讨论】:
标签: php codeigniter
将该方法从该控制器中取出。
假设您有一个 User 模型,如果它正在验证用户并让他们登录,那么这是一个放置它的好地方。
您可以放置可重复代码的其他位置是帮助程序(静态函数)和库(类)。
【讨论】:
将函数带入模型或将其编码到库中。
我不推荐助手,因为不建议您从助手访问数据库。
简单的方法是将它放在一个模型中,比如 user_model 并由任何地方的任何控制器调用。
【讨论】:
我在基本控制器中放置了一个检查登录方法,该方法由所有控制器扩展。现在,如果控制器的操作需要用户登录,我将其称为 parent::_check_login(),如果整个控制器都需要它,我会从该控制器的构造函数中调用它,仅此而已。
【讨论】:
sumanchalki 是正确的,但他可能没有提供足够的信息来说明如何做到这一点。
CodeIgniter Base Classes: Keeping it DRY
这将向您展示如何制作命名的基本控制器,例如可以包含您的用户身份验证逻辑等等的管理控制器。
【讨论】: