2011-11-17 26 views
10

Günlüğe kaydetmemde kullandığım özel bir yardımcım var.Codeigniter denetleyicide denetleyici adını al

Yardımcıların işlevlerinden birinde, aranan denetleyicinin adını almam gerekir. Bunu yapmanın bir yolu var mı?

Bazı denetleyiciler alt klasörler içerdiğinden ve yardımcının her yerde kullanıldığı için uri segmentlerine güvenemiyorum.

cevap

22

Sen değişken $ süper durumda bu birinci CI örneği almak gerekebilir

$this->router->fetch_class(); 
CI2.x

aşağıdaki kullanabilirsiniz. Herhangi bir nedenle denilen yöntemin adını gerektiğinde de bir $ci->router->fetch_method(); yöntemi var

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

: Aşağıdaki kullanın.

+0

Çalışıyor. Teşekkürler. – applechief

0

$this->>router->fetch_method(); böyle bir şey yaparsam index döndürür: (Bu yardımcı çalışır eğer çok emin değilim)

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

bu çalışması gerekir:

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

Ayrıca URI kullanabilirsiniz

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