2013-05-12 4 views
5

Это хорошее обходное решение, и можно было бы использовать вспомогательные классы в представлении в CodeIgniter. У меня есть ситуация, когда мне приходится извлекать из выражения регулярных выражений из текста пару строк и генерировать выходные данные по совпадениям. Я не хотел бы делать это прямо в представлении, и я хотел бы использовать для этой цели помощника.Помощник CodeIgniter в представлении

application 
--view 
---myview.php 

и здесь я должен вызвать помощник и возвращать результаты

, например, я хочу, чтобы извлечь из текста типа процессора, чем я передаю текст и получить возвращаюсь типа процессора. Это необходимо, потому что все данные в представлении генерируются API динамически.

echo $myhelper->processor($text); 
+0

U собирается использовать вспомогательную функцию внутри вид означает, что это возможно и разрешено тоже ... Но я не понял, что вы имеете в виду под «** вспомогательных классами вид**"! –

+0

Я имею в виду вызов класса-помощника и его методы в представлении. – fefe

+0

Я думаю, что я вас не понимаю. (или) запутывают с этим: '$ this-> load-> helper ('helper_name');' строка кода как вызов класса ??? –

ответ

4
get_instance()->load->helper('HELPER_NAME'); 
+2

Ответы только на код действительно забирают с поста, если кто-то должен был просмотреть этот пост, они не знали бы, что он сделал – Jojodmo

+1

Я мог бы объяснить, но уже есть много комментариев о «помощниках», я уверен, что это небольшое ответ достаточно ясный. –

8

CodeIgniter-х user guide объясняет, что помощники могут быть загружены и их функции используются в представлениях.

CodeIgniter не загружает файлы помощника по умолчанию, поэтому первый шаг при использовании помощника - загрузить его. После загрузки он становится глобальным , доступным в вашем контроллере и просмотру.

Однако это не лучший pratice загрузить помощник в представлении, так что вы можете либо auto-load соответствующий помощник, или загрузить его в контроллер (ы).

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

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

+0

благодарит за отзыв! Если я инициализирую помощника в моем контроллере, чем это было бы доступно, на мой взгляд? – fefe

+1

Да! - _После загрузки, он становится глобально доступным в вашем контроллере и представлениях._ – jleft

+1

Для меня всегда лучше загружать ресурсы только тогда, когда вам это нужно, поэтому полезный помощник загрузки имеет смысл. –

2

Просто загрузите помощник в контроллере, а затем

$this->load->helper('MY_common_functions'); 
$template['content'] = $this->load->view('your_view'); 

В представлении называют ваше имя функции непосредственно. В этом случае я назвал моим конвертор функция

echo convertor($params); 
Смежные вопросы