我正在使用codeigniter 3.我已在我的钩子文件中启用了挂钩
$hook['pre_controller'] = array(
'class' => 'myclass',
'function' => 'myfunction',
'filename' => 'myfile.php',
'filepath' => 'hooks',
'params' => ''
);
启用挂钩我收到错误
`Unable to locate the specified class: Session.php`
请帮助解决上述错误。我在配置文件中启用了驱动程序和库。
这是我在钩子中使用的代码
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');
}
}
}
}
答案 0 :(得分:0)
Hook依赖于会话类。因此,请尝试将pre_controller
挂钩更改为post_controller'
,例如
$hook['post_controller'] = array(
'class' => 'Myclass',
'function' => 'Myfunction',
'filename' => 'Myfile.php',
'filepath' => 'hooks',
'params' => ''
);
如果不起作用,请尝试post_controller_constructor
而不是post_controller
答案 1 :(得分:0)
钩子文件路径:application / hooks
controller filename: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' => ""
);
您还需要在配置中允许挂钩。即。应用/配置/ config.php中