Php Codeigniter,钩子未正确加载输入类
我在CI版本1.7.3中遇到了一个简单的钩子问题 我在config hook.php文件中设置了一个[pre_controller]钩子,钩子代码是: 钩子已加载并执行,但未加载输入库,导致返回错误: 对非对象调用成员函数cookie() 怎么可能呢?是否可能在执行挂钩后加载输入库?:OPhp Codeigniter,钩子未正确加载输入类,php,codeigniter,hook,Php,Codeigniter,Hook,我在CI版本1.7.3中遇到了一个简单的钩子问题 我在config hook.php文件中设置了一个[pre_controller]钩子,钩子代码是: 钩子已加载并执行,但未加载输入库,导致返回错误: 对非对象调用成员函数cookie() 怎么可能呢?是否可能在执行挂钩后加载输入库?:O ... 原因控制器、视图和模型输入库工作正常://您的怀疑是对的。您最好扩展控制器类并将代码放入其构造函数中。确保让所有控制器扩展创建的类 如需了解更多详细信息,请参见更正,输入类未加载到pre_控制器hoo
... 原因控制器、视图和模型输入库工作正常://您的怀疑是对的。您最好扩展控制器类并将代码放入其构造函数中。确保让所有控制器扩展创建的类
如需了解更多详细信息,请参见更正,输入类未加载到
pre_控制器
hook。您需要使用post\u controller\u构造函数
hook
如果这对您来说还不够早,您将需要重写CI_控制器类本身。好的,但我不能在钩子中操作cookie是毫无意义的,不是吗/我无法在post_controller中使用Cookie操作,因为为时已晚:)应在pre_controller中读取Cookie以处理数据:(需要明确的是,它的post_controller_构造函数:即在运行控制器中的任何操作之前,但在初始化所有操作之后。我想您可以直接访问$_COOKIE数组,但这通常是一件值得避免的事情。
class Cookie {
function remember_me(){
$CI =& get_instance();
if($CI->input->cookie('remember_me_id',true)){
$CI->load->model('user');
$user = $CI->user->populateById($id = $CI->input->cookie('remember_me_id',true));
if($user){
if($CI->input->cookie('remember_me_token',true) == md5($user->email.$user->password)){
$CI->bootstrap->setUserSession($user);
}
}
}
}
}
//end class