2011-11-17 14 views
10

Mam niestandardowego pomocnika, którego używam do logowania.Codeigniter uzyskać nazwę kontrolera w pomocniku

W jednej z funkcji pomocnika muszę uzyskać nazwę kontrolera, który został wywołany. Czy jest jakiś sposób na zrobienie tego?

Nie mogę polegać na segmentach URI, ponieważ niektóre kontrolery znajdują się w podfolderach, a helper jest cały czas używany.

Odpowiedz

22

można użyć następujących w CI2.x

$this->router->fetch_class(); 

może być konieczne, aby uzyskać instancję CI bardzo zmienna $ this Najważniejsze jest w tym przypadku. Użyj następujących czynności:

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

Istnieje również metoda $ci->router->fetch_method(); jeśli potrzebujesz nazwę metody zwanej jakiegokolwiek powodu.

+0

To działa. Dzięki. – applechief

0

$this->>router->fetch_method(); powróci index jeśli można zrobić coś takiego:

class Someclass extends CI_Controller {   
    function index(){   
     $this->edit();   
    }   
    function edit(){   
     $this->router->fetch_method(); //outputs index 
    } 
} 
0

to powinno działać (nie tak pewien, czy to działa w pomocnika):

$ci =& get_instance(); 
$ci->router->class // gets class name (controller) 
$ci->router->method // gets function name (controller function) 
0

Można również skorzystać z URI klasa

$ci = & get_instance(); 
$ci->uri->segment(1) // That stands for controller 
$ci->uri->segment(2) // That stands for method 
Powiązane problemy