CodeIgniter помощник в представлении

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

application
--view
---myview.php

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

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

echo $myhelper->processor($text);

3 ответа

Решение
get_instance()->load->helper('HELPER_NAME');

Руководство пользователя 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') ?>" >
Другие вопросы по тегам