视图中的CodeIgniter助手

时间:2013-05-12 17:49:22

标签: php codeigniter templates codeigniter-helpers

这是一个很好的解决方法,并且可以在CodeIgniter中的视图中使用帮助程序类。我有一种情况,我必须从一对文本字符串中提取常量表达式并在匹配项上生成输出。我不想在视图中直接这样做,我想为此目的使用帮助器。

application
--view
---myview.php

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

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

echo $myhelper->processor($text);

4 个答案:

答案 0 :(得分:11)

CodeIgniter的user guide解释说可以加载 helpers 并在视图中使用它们的功能。

  

CodeIgniter默认不加载Helper文件,所以第一步   使用帮助程序是加载它。加载后,它将变为全局   在您的控制器和视图中可用。

然而,在视图中加载帮助程序并不是最佳实践,因此您可以auto-load相关帮助程序,或将其加载到控制器中。

  

可以在控制器功能中的任何位置加载帮助程序(或   甚至在你的View文件中,虽然这不是一个好习惯),如   只要你在使用它之前加载它。您可以加载助手   你的控制器构造函数,以便它们可用   自动在任何功能中,或者您可以加载特定的帮助程序   需要它的功能。

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

答案 1 :(得分:5)

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

答案 2 :(得分:3)

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

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

在视图中直接调用您的函数名称。在这种情况下,我调用了我的转换器函数

echo convertor($params);

答案 3 :(得分:0)

它是Codeigniter 4中的标准配置,始终在使用它之前加载辅助功能,无论是在Controller中还是在Views中。 在Codeigniter 4中,如果我们在Controller的__construct方法中声明Helper函数,例如:

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

此帮助器功能将在该控制器的所有控制器功能和视图中提供。例如在输入字段中具有“表单”辅助函数“ set_value()”的视图文件的示例:

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