Codeigniter 4 Текущий / Активный Контроллер
В Codeigniter 3 возможно получить текущий активный класс и метод с этим кодом:
$active_controller = $this->router->fetch_class();
$active_function = $this->router->fetch_method();
Есть ли такие функции в Codeigniter 4?
3 ответа
Решение
Стоит сказать, что эти классы никогда официально не были частью CI3 ( https://codeigniter.com/user_guide/installation/upgrade_300.html?highlight=fetch_class). Принимая во внимание, что CI4 намного более гибок, и что маршруты определяются более разнообразно, я бы посмотрел на сторону маршрутизации и извлек бы ее оттуда ( https://codeigniter4.github.io/userguide/incoming/incomingrequest.html).
В CodeIgniter 4
$router = service('router');
$controller = $router->controllerName();
$router = service('router');
$method = $router->methodName();
Вы можете использовать PHPconstant
илиfunctions
которые предоставляют вам то же самое:
Получить текущее имя функции:
__FUNCTION__
Получить текущее имя класса:
__CLASS__
ИЛИ
get_class()
Codeigniter 4: Все вышеперечисленное работает хорошо, в противном случае используйте тот же код, на который ответил @mathan:
$router = service('router');
echo $router->controllerName();