我正在处理钩子文件,我正在使用钩子的pre_controller
函数,但是当我尝试在其中使用base_url()
函数时,它对我不起作用,它给了我这个错误{ {1}},任何人都可以帮助我解决此错误吗?在这里,我已经添加了整个功能
Call to undefined function base_url()
答案 0 :(得分:1)
这将不起作用,因为如果加载了控制器,base_url()
将被初始化。
而pre_controller
基本上是相反的意思。
有两种选择
选项1
在您的application/hooks/
目录中创建一个PreControllerHook.php。
class PreControllerHook extends CI_Controller
{
public function initialize()
{
$controller_name = $this->router->fetch_class();
//... and so on
}
}
设置您的hooks.php
配置
$hook['pre_controller'] = [
[
'class' => 'PreControllerHook',
'function' => 'initialize',
'filename' => 'PreControllerHook.php',
'filepath' => 'hooks'
[
];
选项2
在您的application/hooks/
目录中创建一个PostControllerConstructorHook.php。
class PostControllerConstructorHook
{
public function initialize()
{
$ci = get_instance();
$controller_name = $ci->router->fetch_class();
//... and so on
}
}
设置您的hooks.php
配置
$hook['post_controller_constructor'] = [
[
'class' => 'PostControllerConstructorHook',
'function' => 'initialize',
'filename' => 'PostControllerConstructorHook.php',
'filepath' => 'hooks'
[
];
您可以在其官方文档页面here中找到更多信息。
答案 1 :(得分:0)