用户
 找回密码
 入住 CI 中国社区
搜索
查看: 7488|回复: 6
收起左侧

[Others] CI的类库只能在控制器中调用,不能在视图中调用吗?

[复制链接]
发表于 2012-11-14 16:24:34 | 显示全部楼层 |阅读模式
CI的类库是不是只能在控制器里调用?
发表于 2012-11-20 09:00:16 | 显示全部楼层
这个问题颇为犀利啊 LZ

为什么要在视图中调用类库呢?没有控制器的页面?
试图可以使用helper的,LZ可以考虑一下

如果你的确要使用类库,我能想到的就是:
引用类文件,获取类需要的参数,然后实例化(原生php调用类的方式)
你觉得有必要吗?

我是新手啦 ,以上纯属乱扯,LZ自求多福吧
发表于 2012-11-22 10:19:17 | 显示全部楼层
理论上 view是不能调用类库的   不过硬要实现也是可以的。
在视图里    $ci_obj = &get_instance();   $ci_obj->load->library('XXXX');    $ci_obj->XXXX->ZZZZ()方法便可实现
发表于 2013-6-20 20:22:15 | 显示全部楼层
Lil_C_張熙 发表于 2012-11-22 10:19
**** 作者被禁止或删除 内容自动屏蔽 ****

XXXX 代表的是控制器里面的文件吗?

发表于 2013-8-20 16:24:33 | 显示全部楼层
xxxx是类名
发表于 2013-9-9 18:42:13 | 显示全部楼层
在CI中,CI_Controller是超类,可通过&get_instance()获取到,get_instance()在/system/core/CodeIgniter.php里定义。
在模型CI_Model里也可像控制器那样$this->load->library('xxx')那样调用类库,因为CI_Model类里面有个魔术方法__get()
PHP复制代码
 
function __get($key)
{
    $CI =& get_instance();
    return $CI->$key;
}
 
复制代码

$this->load经常用到,其实就是CI_Loader类的实例化对象,里面有library,model,view,helper等经常要用到的方法
发表于 2013-10-10 11:37:12 | 显示全部楼层
不懂楼主是想要干什么

本版积分规则