2009-11-05 4 views

ответ

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

см. anweser mwm вместо – Ben

+0

$ this относится к экземпляру приложения, от которого невозможно получить надежный доступ изнутри модели. MWM имеет это право, назначая (byref) экземпляр приложения CI и получая доступ к нему с помощью $ CI-> load-> helper ('foo'). – nageeb

+0

Помощники недоступны, если у вас нет загруженного объекта CI. См. Ответ mwm. –

29

GSto ответил $this->load->helper('helpername'), но если вы в методе а модель, $this просто ссылается (класс), например, что модели и не для CI global. Это не сработает!

Вместо этого вам необходимо загрузить 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 (внизу страницы). –

-3

Я думаю CI проверка оленьей кожи для хелперов дублирования ... CI herlpers является процедурными файлами, вы можете включить уры помощника дважды, если уры контроллер имеет тот же помощник, который загружен как модель ур (который загружен в этот контроллер). Возможно, сделайте библиотеку вместо этого ...

Я вижу, что я получаю отрицательный голос без комментариев ... путем проверки класса загрузчика из ядра CI u может видеть, что метод helpers не проверяет, был ли ранее загружен помощник (он не входит в массив is_loaded(), как и большинство классов, загружаемых через класс фабрики загрузки) ... Я не рекомендую в любом случае загружать хэндлеры как в моделях, так и в контроллерах ... для ex i я сделал хелпер для выходной кодировки, которую я использую в контроллерах (до передачи данных в представление). Было бы очень плохо, если бы я дважды изменил состояние представления ...

0

Вам не нужно загружать помощника в модель. Просто загрузите хелпер в контроллер и используйте функцию в модели, а также мы обычно используем вспомогательную функцию в контроллере

+0

Вы должны сделать это более понятным, используя пример кода – Wolfie

+0

Извините, но это еще не совсем правильно. Иногда помощники требуются в модельных методах дезинфекции и т. Д. – lenswipe

Смежные вопросы