这是我的问题。我正在构建一个需要过滤器的应用程序。我已经让过滤系统正常工作,我什至可以查明我当前想要访问的实际方法。问题是我无法从过滤器文件访问 CI 核心。我在网上搜索过,虽然我找到了一些建议的解决方案,例如“Dipping into CI”,但不推荐它们,因为它们可能会导致 PHP 应用程序不稳定。
我的应用程序中的示例过滤器如下所示
class Trust_filter extends Filter {
function before() {
$this -> ci = &get_instance();
if ($this -> ci -> auth -> is_user_active()) {
$this -> ci -> load -> model("trust_model", "trustmanager");
if ($this -> trustmanager -> verify()) {
echo "##090##";
}
}
}
}
上面的代码不起作用,因为 CI 对象是非对象。我找不到实例,我在这个问题上花了整整一个晚上,但毫无结果。我正在使用 CodeIgniter 1.7.1 。任何帮助将不胜感激。
编辑:我已经找到了问题的答案。我扩展了过滤器系统,以便在创建构造函数后工作,以确保我能够访问 CI 超级对象。我的代码也完美运行。谢谢大家,但我仍然对你们的解决方案感兴趣。
$ci=&get_instance();
$ci->load->model("auth");
$ci->auth->login();
您可以在钩子文件中获取或访问这种类型的模型。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)