Model可以调用helper中函数吗
本帖最后由 mark35 于 2013-3-5 18:35 编辑要根据不同的控制器方法对结果集进行不同的处理,在Model中回调执行预先设置的回调函数名,想把这个回调函数名的代码放在helper中。但看手册没说model可以调用helper中函数
CodeIgniter 默认是没有载入辅助函数文件的,所以如果你想用辅助函数,就必须先载入它。一旦被载入,辅助函数将全局可用(globally available),你可以在 controller 和 views 中使用它们。
如果不行,那好像只有放到类库中,然后在Model的方法中回调类库中定义的方法了
可以的,如果不行可以参看下一个CI的权限模块。
http://github.com/benedmunds/CodeIgniter-Ion-Auth 英文原文没写好。
控制器中的$this,与模型中的$this不是同一件事,而view本身不是object,在view中使用的$this就是控制器。
library中的$this亦与控制器及模型有别。原文亦无提到library。
载入helper,是把函数的定义载入PHP。载入后,无论是Controller,model,view,library,甚至是其它helper都能使用这些函数。
可注意到在手册中没提及model,library及其它helper都可以使用helper。这可能是考虑到,若$this不是控制器,载入helper的方法可能会不一样。
但熟悉PHP的都知道,若函数定义已载入PHP,无论在传统模式,或是object模式,都能直接调用该函数。 niudongwei 发表于 2013-2-24 00:35 static/image/common/back.gif
可以的,如果不行可以参看下一个CI的权限模块。
http://github.com/benedmunds/CodeIgniter-Ion-Auth ...
多谢,我就是用这个类库的 燃雲 发表于 2013-2-24 06:51 static/image/common/back.gif
英文原文没写好。
控制器中的$this,与模型中的$this不是同一件事,而view本身不是object,在view中使用的 ...
是的,我是想helper是函数定义,在controler中载入后就应该可以在任何地方调用——因为辅助函数调用是函数名直接调用,而不是$this->fn对象的方式来调用
多谢 本帖最后由 mark35 于 2013-2-25 21:18 编辑
niudongwei 发表于 2013-2-24 00:35 static/image/common/back.gif
可以的,如果不行可以参看下一个CI的权限模块。
http://github.com/benedmunds/CodeIgniter-Ion-Auth ...
ion_auth是在类库中加载model:
$this->load->model('ion_auth_model');
然后在控制器中使用ion_auth而不是ion_auth_model去调用方法,不知道为何这样,方便管理么 //list the users
$this->data['users'] = $this->ion_auth->users()->result();
这是ion_auth官网的说明
NOTE: Methods available in the model are called through the controller using PHP5 magic. You should never use ion_auth_model->method() in your applications.
页:
[1]