2011-11-17 59 views
10

Tengo un helper personalizado que utilizo para el registro.Codeigniter obtener el nombre del controlador en helper

Dentro de una de las funciones del asistente necesito obtener el nombre del controlador que se llamó. ¿Hay una manera de hacerlo?

No puedo confiar en los segmentos uri porque algunos controladores están en subcarpetas y el helper se usa por todas partes.

Respuesta

22

Puede utilizar el siguiente en CI2.x

$this->router->fetch_class(); 

Es posible que necesite para obtener una instancia de la CI muy variable $ esta primera en cuyo caso. Usar el siguiente:

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

También hay un método $ci->router->fetch_method(); si necesita el nombre del método llamado por cualquier motivo.

+0

Eso funciona. Gracias. – applechief

0

$this->>router->fetch_method(); volverá index si haces algo como esto:

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

esto debería funcionar (no tan seguro si funciona en el ayudante):

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

También puede utilizar el URI clase

$ci = & get_instance(); 
$ci->uri->segment(1) // That stands for controller 
$ci->uri->segment(2) // That stands for method 
Cuestiones relacionadas