Это не будет работать, потому что base_url()
инициализируется, если загружен контроллер.И pre_controller
в основном означает обратное.
Для вас есть два варианта
Опция 1
создать PreControllerHook.php в вашем application/hooks/
directory.
class PreControllerHook extends CI_Controller
{
public function initialize()
{
$controller_name = $this->router->fetch_class();
//... and so on
}
}
Настройте hooks.php
config
$hook['pre_controller'] = [
[
'class' => 'PreControllerHook',
'function' => 'initialize',
'filename' => 'PreControllerHook.php',
'filepath' => 'hooks'
[
];
Option 2
создайте PostControllerConstructorHook.php в вашем application/hooks/
directory.
class PostControllerConstructorHook
{
public function initialize()
{
$ci = get_instance();
$controller_name = $ci->router->fetch_class();
//... and so on
}
}
Настройте hooks.php
config
$hook['post_controller_constructor'] = [
[
'class' => 'PostControllerConstructorHook',
'function' => 'initialize',
'filename' => 'PostControllerConstructorHook.php',
'filepath' => 'hooks'
[
];
Более подробную информацию вы можете найти на их официальной странице документации здесь .