我有一個用於日誌記錄的自定義幫助程序。Codeigniter在幫助程序中獲取控制器名稱
在輔助函數的其中一個函數中,我需要獲取被調用的控制器的名稱。有沒有辦法做到這一點?
我不能依賴uri細分,因爲一些控制器在子文件夾中,並且幫助器被全部使用。
我有一個用於日誌記錄的自定義幫助程序。Codeigniter在幫助程序中獲取控制器名稱
在輔助函數的其中一個函數中,我需要獲取被調用的控制器的名稱。有沒有辦法做到這一點?
我不能依賴uri細分,因爲一些控制器在子文件夾中,並且幫助器被全部使用。
您可以使用下面的CI2.x
$this->router->fetch_class();
您可能需要超級獲得CI的實例變量$ this一線在這種情況下。使用以下命令:
$ci =& get_instance();
$ci->router->fetch_class();
,如果你需要呼籲任何原因,這種方法的名稱,還有一個$ci->router->fetch_method();
方法。
$this->>router->fetch_method();
將返回index
,如果你做這樣的事情:
class Someclass extends CI_Controller {
function index(){
$this->edit();
}
function edit(){
$this->router->fetch_method(); //outputs index
}
}
這應該工作(不是很確定,如果它工作在助手):
$ci =& get_instance();
$ci->router->class // gets class name (controller)
$ci->router->method // gets function name (controller function)
您也可以使用URI類
$ci = & get_instance();
$ci->uri->segment(1) // That stands for controller
$ci->uri->segment(2) // That stands for method
這是行得通的。謝謝。 – applechief