CodeIgniter помощник в представлении
Это хороший обходной путь и можно ли использовать вспомогательные классы в представлении, в CodeIgniter. У меня есть ситуация, когда мне нужно извлечь с помощью регулярных выражений из текстовой пары строк и генерировать выходные данные на совпадения. Я не хотел бы делать это непосредственно в представлении, и я хотел бы использовать для этой цели помощника.
application
--view
---myview.php
и здесь я должен вызвать помощника и вернуть результаты
например, я хочу извлечь из текста тип процессора, затем передать текст и получить тип процессора. Это необходимо, потому что все данные в представлении генерируются API динамически.
echo $myhelper->processor($text);
3 ответа
Руководство пользователя CodeIgniter объясняет, что помощники могут быть загружены и их функции используются в представлениях.
CodeIgniter не загружает вспомогательные файлы по умолчанию, поэтому первым шагом при использовании вспомогательного файла является его загрузка. После загрузки он становится глобально доступным в вашем контроллере и представлениях.
Однако не рекомендуется использовать помощник в представлении, поэтому вы можете либо автоматически загрузить соответствующий помощник, либо загрузить его в свой контроллер (ы).
Помощник может быть загружен в любом месте в пределах функций вашего контроллера (или даже в ваших файлах View, хотя это не очень хорошая практика), если вы загружаете его перед использованием. Вы можете загрузить свои помощники в конструктор контроллера, чтобы они стали автоматически доступны в любой функции, или вы можете загрузить помощник в конкретной функции, которая нуждается в этом.
Таким образом, использование вспомогательных функций в представлении хорошо, хотя рекомендуется, чтобы вспомогательный загружался в контроллер или загружался автоматически.
Просто загрузите помощник в свой контроллер, затем
$this->load->helper('MY_common_functions');
$template['content'] = $this->load->view('your_view');
В представлении вызовите имя вашей функции напрямую. В этом случае я вызвал мою функцию конвертора
echo convertor($params);
Это стандартно в Codeigniter 4, всегда загружайте вспомогательную функцию перед ее использованием, либо в контроллере, либо в представлениях. В Codeigniter 4 Если мы объявим вспомогательную функцию в методе __construct контроллера, например:
<?php
namespace App\Controllers;
class NewsEventController extends BaseController{
public function __construct(){
helper('form');
}
Тогда эта вспомогательная функция будет доступна во всех функциях и представлениях этого контроллера. Пример файла представления со вспомогательной функцией 'form'set_value()'в поле ввода, например:
<input type="text" class="form-control" name="title" value="<?= set_value('title') ?>" >