2009-11-05 22 views

Respuesta

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

vea el enano de mwm en su lugar – Ben

+0

$ this se refiere a la instancia de la aplicación, a la cual no se puede acceder de manera confiable desde un modelo. MWM tiene razón al asignar (byref) una instancia de la aplicación de CI y acceder a ella usando $ CI-> load-> helper ('foo'). – nageeb

+0

Los ayudantes no están disponibles a menos que tenga cargado el objeto de CI. Ver la respuesta de mwm. –

29

GSTO respondió $this->load->helper('helpername') pero si usted está en el método de un modelo, $this simplemente se refiere a la instancia y no de ese tipo (clase) a CI global. ¡Eso no funcionará!

su lugar usted necesita para cargar el CI global y luego cargar el ayudante:

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

Eso es correcto, pero se recomienda asignar por referencia de la siguiente manera: $ ci = & get_instance(); para asegurarse de que está utilizando el objeto CodeIgniter original en lugar de copiarlo. Ver http://codeigniter.com/user_guide/general/ancillary_classes.html (parte inferior de la página). –

-3

Creo IC del cheque duerma para la duplicación ayudante ... herlpers CI son archivos de procedimiento, que podría incluir ur ayudante dos veces si ur el controlador tiene el mismo helper cargado como su modelo (que está cargado en ese controlador). Tal vez hacer una biblioteca en lugar ...

puedo ver me sale votos negativos w/o cualquier comentario ... comprobando cargador de clases de CI núcleo u puede ver la comprobación método ayudantes isnt si el ayudante se ha cargado antes (se no está incluido en la matriz is_loaded() como la mayoría de las clases que se cargan a través de la clase de fábrica de carga) ... No recomiendo de todos modos cargar asistentes tanto en modelos como en controladores ... por ejemplo, hice una ayuda para la codificación de salida que uso en los controladores (antes de pasar los datos a la vista). Sería muy malo si cambio el estado de la vista dos veces ...

0

No necesita cargar helper en un modelo. Simplemente cargue el helper en un controlador y use la función en un modelo, así como normalmente usamos la función auxiliar en un controlador

+0

Debe aclarar esto usando el código de ejemplo – Wolfie

+0

Lo sentimos, pero eso no es del todo correcto. A veces se requieren ayudantes en los métodos modelo para sanitización, etc. – lenswipe

Cuestiones relacionadas