2009-11-05 5 views

Répondre

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

voir anweser de mwm à la place – Ben

+0

le $ this fait référence à l'instance d'application, qui ne peut pas être accédée de manière fiable depuis un modèle. MWM a raison, en affectant (byref) une instance de l'application CI et en y accédant en utilisant $ CI-> load-> helper ('foo'). – nageeb

+0

Les aides ne sont pas disponibles sauf si l'objet CI est chargé. Voir la réponse de mwm. –

29

gsto a répondu $this->load->helper('helpername') mais si vous êtes dans la méthode d'un modèle, $this se réfère simplement à ce que l'instance de modèle (classe) et non à CI global. Cela ne marchera pas!

Au lieu de cela, vous devez charger le global CI puis charger l'aide:

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

C'est correct, mais il est recommandé d'assigner par référence comme ceci: $ ci = & get_instance(); pour vous assurer que vous utilisez l'objet CodeIgniter d'origine au lieu de le copier. Voir http://codeigniter.com/user_guide/general/ancillary_classes.html (en bas de la page). –

-3

Je pense que CI contrôle ne marche pas pour la duplication d'aide ... CI herlpers sont des fichiers de procédure, vous pouvez inclure deux fois ur aide si ur Le contrôleur a le même assistant chargé que votre modèle (qui est chargé dans ce contrôleur). Peut-être faire une bibliothèque à la place ...

Je peux voir que j'obtiens des votes négatifs sans aucun commentaire ... en vérifiant la classe de chargeur du noyau CI vous pouvez voir la méthode helpers ne vérifie pas si l'assistant a été chargé avant (il n'est pas inclus dans le tableau is_loaded() comme la plupart des classes qui sont chargées via la classe load factory) ... Je ne recommande quand même pas de charger les helpers dans les modeles et controleurs ... ex i fait un helper pour l'encodage de sortie que j'utilise dans les contrôleurs (avant de transmettre les données à la vue). Il serait très mauvais si je change l'état d'affichage deux fois ...

0

Vous n'avez pas besoin de charger l'aide dans un model.Just charger l'aide dans un contrôleur et utiliser la fonction dans un modèle aussi bien que nous utilisons normalement la fonction d'aide dans un contrôleur

+0

Vous devriez rendre cela plus clair en utilisant l'exemple de code – Wolfie

+0

Désolé, mais ce n'est pas tout à fait correct. Parfois, des aides sont nécessaires dans les méthodes de modélisation pour la désinfection, etc. – lenswipe

Questions connexes