Je veux charger de l'aide dans un modèle. Comment faire cela? Essayé d'utiliser: mais obtient toujours une erreur p> Erreur fatale: appelez à une fonction de fonction membre () sur un non-objet p>
blockQuote> p>
4 Réponses :
$this->load->helper('helpername')
La société $ ceci fait référence à l'instance d'application, qui ne peut être accessible de manière fiable de l'intérieur d'un modèle. MWM a-t-il correctement, en attribuant (BYREF) une instance de l'application CI et d'y accéder en utilisant $ CI-> Helper ("FOO").
Les aides ne sont disponibles que si vous n'avez que l'objet CI chargé. Voir la réponse de MWM.
gsto a répondu Au lieu de cela, vous devez charger le GLOBAL CI, puis chargez l'aide: P> $ ceci-> Chargement-> Helper ('HelperName') CODE> Mais si vous êtes dans la méthode de modèle,
$ CU code> fait simplement référence à ce modèle (classe ) exemple et non à CI global. Cela ne fonctionnera pas!
// PHP 4
// $ci =& get_instance();
// PHP 5
$ci = get_instance();
$ci->load->helper('text');
C'est correct, mais il est recommandé d'attribuer par référence comme: $ CI = & get_instance (); Pour vous assurer que vous utilisez l'objet Coundigniter d'origine au lieu de la copier. Voir codeigniter.com/user_guide/general/ancillary_classes.html (bas de la page) .
Je pense que CI ne pas vérifier la duplication desiliaire ... Les herlpeurs CI sont des fichiers de procédure, vous pouvez inclure votre assistant deux fois si votre contrôleur a la même aide chargée que votre modèle (qui est chargé dans ce contrôleur). Peut-être faire une bibliothèque à la place ... p>
Je peux voir que je reçois des votes négatifs w / o Tout commentaire ... en vérifiant la classe Loader à partir de Core CI U, la méthode des aides ne vérifie pas la vérification si l'assistant a été chargée auparavant (il n'est pas inclus dans le tableau IS_Loaded () Comme la plupart des classes chargées par la classe de chargement de la classe d'usine) ... Je ne recommande pas de toute façon à charger des aides à charger des modèles et des contrôleurs ... pour EX I a fait une aide à la sortie de codage de sortie que j'utilise dans les contrôleurs (avant que je ne passe pas de données sur les données. vue) . Ce serait très mauvais si je change l'état de vue deux fois ... p>
Vous n'avez pas besoin de charger l'assistant dans un modèle.Juste charge de charge dans un contrôleur et utilisez une fonction dans un modèle ainsi que nous utilisons normalement une fonction d'assistance dans un contrôleur P>
Vous devez le rendre plus clair en utilisant exemple de code
Désolé, mais ce n'est pas tout à fait correct. Parfois, des aides sont nécessaires dans les méthodes modèles de désinfection, etc.