2011-11-17 32 views
10

Tôi có trình trợ giúp tùy chỉnh mà tôi sử dụng để ghi nhật ký.Codeigniter lấy tên bộ điều khiển trong trình trợ giúp

Trong một trong các chức năng của trình trợ giúp tôi cần có tên của bộ điều khiển được gọi. Có cách nào để làm điều đó?

Tôi không thể dựa vào phân đoạn uri vì một số bộ điều khiển nằm trong thư mục con và trình trợ giúp được sử dụng trên tất cả.

Trả lời

22

Bạn có thể sử dụng sau trong CI2.x

$this->router->fetch_class(); 

Bạn có thể cần để có được một thể hiện của CI siêu biến $ hệ thứ nhất này trong trường hợp này. Sử dụng các mục sau:

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

Phương thức này được gọi là $ci->router->fetch_method(); nếu bạn cần tên của phương thức được gọi.

+0

Điều đó có hiệu quả. Cảm ơn. – applechief

0

$this->>router->fetch_method(); sẽ trở lại index nếu bạn làm điều gì đó như thế này:

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

này nên làm việc (không như vậy chắc chắn nếu nó hoạt động trong helper):

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

Bạn cũng có thể sử dụng URI lớp

$ci = & get_instance(); 
$ci->uri->segment(1) // That stands for controller 
$ci->uri->segment(2) // That stands for method 
Các vấn đề liên quan