Codeigniter получить имя контроллера в помощнике - PullRequest
10 голосов
/ 17 ноября 2011

У меня есть специальный помощник, который я использую для регистрации.

В рамках одной из функций помощника мне нужно получить имя вызываемого контроллера. Есть ли способ сделать это?

Я не могу полагаться на сегменты uri, потому что некоторые контроллеры находятся в подпапках, а помощник используется повсеместно.

Ответы [ 4 ]

22 голосов
/ 17 ноября 2011

Вы можете использовать следующее в CI2.x

$this->router->fetch_class();

Возможно, вам понадобится получить экземпляр супер-переменной CI $ this - в этом случае.Используйте следующее:

$ci =& get_instance();
$ci->router->fetch_class();

Существует также метод $ci->router->fetch_method();, если вам нужно имя метода, вызванного по любой причине.

0 голосов
/ 24 ноября 2017

Вы также можете использовать класс URI

$ci = & get_instance();
$ci->uri->segment(1) // That stands for controller
$ci->uri->segment(2) // That stands for method
0 голосов
/ 09 февраля 2014

это должно сработать (не уверен, работает ли он в помощнике):

$ci =& get_instance();
$ci->router->class // gets class name (controller)
$ci->router->method // gets function name (controller function)
0 голосов
/ 14 февраля 2013

$this->>router->fetch_method(); вернет index, если вы сделаете что-то вроде этого:

class Someclass extends CI_Controller {        
    function index(){        
        $this->edit();        
    }        
    function edit(){        
        $this->router->fetch_method(); //outputs index
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...