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();  
Другие вопросы по тегам