视图中的CodeIgniter helper


CodeIgniter helper in the view

这是一个很好的解决方案吗?在CodeIgniter中,是否有可能在视图中使用helper类?我有一种情况,当我必须从文本一对字符串中提取正则表达式,并在匹配上生成输出。我不希望直接在视图中执行此操作,我希望为此使用helper。

application
--view
---myview.php

这里我应该调用帮助器并返回结果

为例,我想从文本中提取处理器的类型,然后传递文本并获得返回的处理器类型。这个是必需的,因为视图中的所有数据都是由API动态生成的。

echo $myhelper->processor($text);

CodeIgniter的用户指南解释了helper 可以被加载,并在视图中使用它们的功能。

CodeIgniter默认情况下不加载Helper文件,所以第一步使用Helper的一个重要步骤是加载它。一旦加载,它就变成了全局的可在控制器和视图中使用。

然而,在视图中加载helper并不是最佳实践,所以你可以自动加载相关的helper,或者在你的控制器中加载它。

可以在控制器函数(或即使在您的视图文件中,尽管这不是一个好的做法),作为只要你在用之前装好子弹就行。你可以载入你的助手你的控制器构造函数,使它们可用自动加载到任何函数中,也可以在特定的函数需要它。

因此,在视图中使用辅助函数是可以的,尽管我们鼓励在控制器中加载辅助函数,或者自动加载。

get_instance()->load->helper('HELPER_NAME');

只需在控制器中加载helper,然后

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

在视图中直接调用函数名。在本例中,我调用了转换函数

echo convertor($params);

在Codeigniter 4中是标准的,在使用它之前总是加载Helper函数,无论是在控制器还是视图中。如果我们在控制器的__construct方法中声明Helper函数,如:

<?php
  namespace App'Controllers;
  class NewsEventController extends BaseController{
  public function __construct(){
        helper('form');
  }

那么这个Helper函数将在所有控制器函数中可用&控制器的视图。示例视图文件,在输入字段中使用'form'辅助函数'set_value()':

<input type="text" class="form-control" name="title" value="<?= set_value('title') ?>" >