【发布时间】:2010-12-13 10:28:05
【问题描述】:
我想在模型中加载一些助手。这个怎么做?尝试使用:
${get_parent_class($this)}->load->helper ('text');
但还是报错
致命错误:在非对象上调用成员函数 helper()
【问题讨论】:
标签: php class codeigniter
我想在模型中加载一些助手。这个怎么做?尝试使用:
${get_parent_class($this)}->load->helper ('text');
但还是报错
致命错误:在非对象上调用成员函数 helper()
【问题讨论】:
标签: php class codeigniter
GSto 回答了$this->load->helper('helpername'),但如果您在模型的方法中,$this 只是指该模型的(类)实例而不是 CI 全局。那是行不通的!
相反,您需要加载 CI 全局,然后加载帮助程序:
// PHP 4
// $ci =& get_instance();
// PHP 5
$ci = get_instance();
$ci->load->helper('text');
【讨论】:
你不需要在模型中加载帮助器。只需在控制器中加载帮助器并在模型中使用函数,就像我们通常在控制器中使用帮助器函数一样
【讨论】:
$this->load->helper('helpername')
【讨论】:
我认为 CI 不会检查助手重复... CI 助手是程序文件,如果你的控制器加载了与你的模型相同的助手(即加载在该控制器中),你可能会包含你的助手两次。也许做一个图书馆...
我可以看到我在没有任何 cmets 的情况下获得了反对票...通过从核心 CI 检查加载器类你可以看到帮助方法不是检查帮助器之前是否已加载(它不包含在 is_loaded() 数组中像大多数通过加载工厂类加载的类一样)......无论如何我不建议在模型和控制器中加载帮助器......例如,我为我在控制器中使用的输出编码制作了一个帮助器(在我将数据传递给看法) 。如果我两次更改视图状态,那将是非常糟糕的......
【讨论】: