codeigniter版本3中的挂钩
我正在使用codeigniter 3。我已经在我的挂钩文件中启用了挂钩codeigniter版本3中的挂钩,codeigniter,Codeigniter,我正在使用codeigniter 3。我已经在我的挂钩文件中启用了挂钩 $hook['pre_controller'] = array( 'class' => 'myclass', 'function' => 'myfunction', 'filename' => 'myfile.php', 'filepath' => 'hooks', 'params' => '' ); 在
$hook['pre_controller'] = array(
'class' => 'myclass',
'function' => 'myfunction',
'filename' => 'myfile.php',
'filepath' => 'hooks',
'params' => ''
);
在启用钩子时,我得到的错误如下
`Unable to locate the specified class: Session.php`
请帮助解决上述错误。我已经在配置文件中启用了驱动程序和库
这是我在hook中使用的代码
class Check_login extends CI_Controller
{
public function CheckLoggin()
{
$url = $this->uri->segment(1);
if($url == "givenparameter")
{
$login_id = $this->session->userdata("ID");
$get_url = $this->uri->segment(2);
if($login_id == "" && $get_url != 'login')
{
redirect('controller/login', 'refresh');
}
}
}
}
钩子依赖于会话类。因此,请尝试将
pre\u controller
挂钩更改为post\u controller'
类似
$hook['post_controller'] = array(
'class' => 'Myclass',
'function' => 'Myfunction',
'filename' => 'Myfile.php',
'filepath' => 'hooks',
'params' => ''
);
如果不起作用,请尝试
post\u controller\u构造函数
,而不是post\u controller
钩子文件路径:应用程序/钩子
控制器文件名:Blocker.php
class Blocker {
function Blocker(){
}
function requestBlocker(){
echo "done";
}
}
此外,您还需要对此进行配置
配置路径:application/config/hooks.php
$hook['pre_controller'] = array(
'class' => 'Blocker',
'function' => 'requestBlocker',
'filename' => 'Blocker.php',
'filepath' => 'hooks',
'params' => ""
);
您还需要在配置中允许挂钩。ie.application/config/config.phpYa我尝试了这些东西,但得到了相同的错误。我认为您的第二个拦截器函数的意思是_construct()Ya我已经尝试了上面的东西。如果使用{extends CI_Controller},则会出现错误
无法找到指定的类:Session.php
。我们可以使用CI_model写入吗?您是否在配置文件$config['encryption_key']='yourkey'中配置了加密密钥;对于预控器,您必须使用above@Nobita很抱歉迟回复你,我已经尝试了上面提到的每一个选项,但同样的错误