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

[已解决] 创建自己的类库,怎么引用 CI_Model对象

[复制链接]
发表于 2011-10-27 10:48:02 | 显示全部楼层 |阅读模式
<?php if (!defined('BASEPATH')) exit('No direct script access allowed');

class Myclass{

    /**
     * 记录用户操作记录
     */
    function user_done($rs = true){
        $model = new CI_Model();
        print_r($model);



        if($rs === true){
            $sql = $model->db->last_query();
            $data = array(
                'user_id'     => $this->loginid ,
                'done_info'   => $sql,
                'create_time' => time()
            );
            $model->db->insert('user_done', $data);
        }
    }
}

?>

这个类放在application里面有错吗
发表于 2011-10-27 12:10:28 | 显示全部楼层
PHP复制代码
 
protected $ci;
public function __construct()
 {
  $this->ci =& get_instance();
  $this->ci->load->model('my_model');
}
 
复制代码

或是
PHP复制代码
 
$ci =& get_instance();
$ci->load->model('my_model');
 
复制代码

 楼主| 发表于 2011-10-27 12:14:24 | 显示全部楼层
tiana 发表于 2011-10-27 12:10
或是

谢谢,美女
发表于 2011-10-27 12:16:03 | 显示全部楼层
操作数据库不需要用 CI_Model,直接用 database 类库就可以了。
 楼主| 发表于 2011-10-27 13:20:40 | 显示全部楼层
tiana 发表于 2011-10-27 12:10
或是

你好,我测试过,还是不行呢。
 楼主| 发表于 2011-10-27 13:26:12 | 显示全部楼层
Hex 发表于 2011-10-27 12:16
操作数据库不需要用 CI_Model,直接用 database 类库就可以了。

<?php if (!defined('BASEPATH')) exit('No direct script access allowed');

class Myclass{

    /**
     * 记录用户操作记录
     */
    protected  $ci;
    public function __construct(){
        $this->ci = &get_instance();
        $this->ci->load->model('CI_DB_driver');
    }
   我创建一个这样的类,怎么实例化那个类库,才能像model一样中,使用$this->db->last_query();???
 楼主| 发表于 2011-10-27 13:29:39 | 显示全部楼层
Hex 发表于 2011-10-27 12:16
操作数据库不需要用 CI_Model,直接用 database 类库就可以了。

        $this->ci = &get_instance();
        $this->ci->load->model('db');

亲,我这样写的。
An Error Was Encountered

The model name you are loading is the name of a resource that is already being used: db
发表于 2011-10-27 13:39:19 | 显示全部楼层
jonsteven 发表于 2011-10-27 13:29
$this->ci = &get_instance();
        $this->ci->load->model('db');

db在autoload里设置成自动载入。

再说,db也是不这么载入的。
$this->load->database();

多看手册
 楼主| 发表于 2011-10-27 13:49:48 | 显示全部楼层
baiyuxiong 发表于 2011-10-27 13:39
db在autoload里设置成自动载入。

再说,db也是不这么载入的。

你好,手册里面没有说明,自己创建的类,怎么使用db里面的函数。。。
<?php if (!defined('BASEPATH')) exit('No direct script access allowed');

class Myclass{

    /**
     * 记录用户操作记录
     */
    public function __construct(){
        $this->load->database();
        $this->db->last_query();
    }
发表于 2011-10-27 13:50:15 | 显示全部楼层
jonsteven 发表于 2011-10-27 13:29
$this->ci = &get_instance();
        $this->ci->load->model('db');

db 不是模型。
不是所有 $this-> 的都是模型。
建议还是仔细看一下手册。

你应该写成
$CI = &get_instance();
$CI->load->database();
$CI->db->xxxxx();

本版积分规则