这是我的问题。我正在构建一个需要过滤器的应用程序。我已经使过滤器系统开始工作,我什至可以在此时此刻确定要访问的实际方法。问题是我无法从过滤器文件访问CI核心。我在网上搜索过,虽然发现了一些建议的解决方案,例如“浸入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##";
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
上面的代码不起作用,因为CI对象是非对象。我无法获得实例,并且为此花了一整夜都没有结果。我正在使用CodeIgniter 1.7.1。任何帮助将不胜感激。
编辑:我找到了问题的答案。创建构造函数后,我将过滤器系统扩展为可以工作,以确保可以访问CI超对象。我的代码也完美地工作。谢谢大家,但我仍然对您的解决方案感兴趣。
$ci=&get_instance();
$ci->load->model("auth");
$ci->auth->login();
Run Code Online (Sandbox Code Playgroud)
您可以在挂钩文件中获取或访问模型的这种类型。
| 归档时间: |
|
| 查看次数: |
4005 次 |
| 最近记录: |