如何从辅助函数访问模型以查询数据库?

Posted

技术标签:

【中文标题】如何从辅助函数访问模型以查询数据库?【英文标题】:How to access model to query database from a helper function? 【发布时间】:2011-01-01 07:10:05 【问题描述】:

我正在尝试为我的 php 网站创建身份验证。我正在使用 codeigniter 框架。我将不得不在我网站的所有页面中验证会话。因此,为了避免代码重复,我计划在辅助函数中进行。现在我的用户凭据是 在我的数据库中,我想访问模型以从助手查询数据库 功能。在控制器类中,我会使用

$this->load->model('user_model');

请让我知道它在帮助文件中的等价物。任何形式的方法建议也值得赞赏。提前致谢。

【问题讨论】:

【参考方案1】:

您将无法在帮助程序中使用 $this 访问您的 CI 实例,但 CI 有办法做到这一点 -

首先,您需要对 CI 实例的引用:

$CI =& get_instance();

然后,如果你需要加载模型,你可以这样做:

$CI->load->model('model_name');

最后像这样调用模型中的任何函数:

$CI->model_name->function_name();

基本上,使用 $CI 代替 $this。希望对您有所帮助。

【讨论】:

【参考方案2】:

没有那么多代码重复。我建议这种方法:

function __construct()

    parent::Controller();

    if ($this->auth->is_logged_in() !== TRUE) // "auth" is the authentication library
    
        redirect('login');
    

【讨论】:

以上是关于如何从辅助函数访问模型以查询数据库?的主要内容,如果未能解决你的问题,请参考以下文章

我如何编写一个从 mongodb 查询的辅助函数,然后可以为任何 ejs 模板调用此函数

辅助 UITableView 上的 NSFetchedResultsController - 如何查询数据?

从自定义查询返回模型而不访问数据库

如何优化限制查询以更快地从大表中访问数据?

Django中模型

如何运行 sql 查询以从不同的 joomla 组件返回数据