2009-11-05 83 views

回答

-3
$this->load->helper('helpername') 
+1

請參閱mwm的anweser而不是 – Ben 2010-10-31 04:46:45

+0

$ this指的是應用程序實例,它不能從模型中可靠地訪問。 MWM說得對,通過分配(byref)CI應用程序的一個實例並使用$ CI-> load-> helper('foo')來訪問它。 – nageeb 2012-08-20 22:23:36

+0

除非您已加載CI對象,否則助手不可用。見mwm的答案。 – 2015-08-04 13:04:31

29

GSTO回答$this->load->helper('helpername')但如果你是在模型的方法,$this只是指模型(類)的實例,而不是致CI全球。那不行!

相反,你需要加載CI全球然後加載助手:

// PHP 4 
// $ci =& get_instance(); 
// PHP 5  
$ci = get_instance(); 
$ci->load->helper('text'); 
+5

這是正確的,但建議通過引用來分配,如下所示:$ ci =&get_instance();以確保您使用的是原始CodeIgniter對象而不是將其複製。請參閱http://codeigniter.com/user_guide/general/ancillary_classes.html(頁面底部)。 – 2011-01-27 11:06:31

-3

我覺得幫手重複CI犯規檢查...... CI herlpers是程序文件,則可能如果包括烏爾幫手兩次烏爾控制器與ur模型(在該控制器中加載)具有相同的幫助器。也許做一個圖書館,而不是...

我可以看到我得到反對票W/O任何意見...通過檢查從核心CI的加載器類你可以看到助手方法不檢查如果助手之前已加載(它不包含在is_loaded()數組中,就像大多數通過加載工廠類加載的類一樣)...我不建議反正在模型和控制器中加載helper ... for ex我爲輸出編碼做了一個幫助,在控制器中(在我將數據傳遞給視圖之前)。這將是非常糟糕的,如果我改變視圖狀態兩次...

0

你不需要在模型中加載助手。只需加載助手在控制器和模型中使用函數以及我們通常使用幫助函數在控制器中

+0

您應該通過使用示例代碼 – Wolfie 2017-03-17 13:57:45

+0

更清楚地表達對不起,但那不太正確。有時需要幫助者進行消毒等模型方法。 – lenswipe 2017-04-11 11:43:12