这是一个很好的解决方法,并且可以在CodeIgniter中的视图中使用帮助程序类。我有一种情况,我必须从一对文本字符串中提取常量表达式并在匹配项上生成输出。我不想在视图中直接这样做,我想为此目的使用帮助器。
application
--view
---myview.php
在这里我应该调用帮助器并返回结果
例如我想从文本中提取处理器的类型,而不是传递文本并返回处理器类型。需要这个是因为视图中的所有数据都是由API动态生成的。
echo $myhelper->processor($text);
答案 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') ?>" >