2009-11-05 11 views

risposta

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

vedere l'anweser di mwm invece – Ben

+0

$ si riferisce all'istanza dell'applicazione, a cui non è possibile accedere in modo affidabile dall'interno di un modello. MWM ha ragione, assegnando (byref) un'istanza dell'applicazione CI e accedendola usando $ CI-> load-> helper ('foo'). – nageeb

+0

Gli helper non sono disponibili a meno che non sia stato caricato l'oggetto CI. Vedi la risposta di mwm. –

29

GSto risposto $this->load->helper('helpername') ma se siete nel metodo di un modello, $this si riferisce semplicemente a (classe) istanza e non quella del modello a CI globale. Non funzionerà!

Invece è necessario caricare il CI globale e quindi caricare l'assistente:

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

Questo è corretto, ma si consiglia di assegnare per riferimento in questo modo: $ ci = e get_instance(); per assicurarsi di utilizzare l'oggetto CodeIgniter originale invece di copiarlo. Vedi http://codeigniter.com/user_guide/general/ancillary_classes.html (parte inferiore della pagina). –

-3

Penso CI di controllo incaricato di tirare per la duplicazione aiutante ... herlpers CI sono file di procedura, è possibile includere ur aiutante due volte se ur il controller ha lo stesso helper caricato come un modello (caricato in quel controller). Forse faccio una libreria invece ...

Vedo che ottengo voti negativi senza commenti ... controllando la classe del caricatore dal core CI puoi vedere il metodo degli helper non controlla se l'helper è stato caricato prima (non è incluso nell'array is_loaded() come la maggior parte delle classi che vengono caricate attraverso load factory class) ... Non consiglio comunque di caricare helper in entrambi i modelli e controller ... per esempio ho creato un helper per la codifica dell'output che uso nei controller (prima di passare i dati alla vista). Sarebbe molto brutto se cambiassi lo stato di visualizzazione due volte ...

0

Non è necessario caricare helper in un modello. Basta caricare l'helper in un controller e utilizzare la funzione in un modello così come normalmente si usa la funzione di supporto in un controller

+0

Dovresti renderlo più chiaro usando il codice di esempio – Wolfie

+0

Ci scusiamo, ma non è del tutto corretto. A volte sono necessari aiutanti nei metodi modello per la sanificazione ecc. – lenswipe

Problemi correlati