这条线有什么问题?

时间:2011-04-08 20:31:00

标签: php codeigniter codeigniter-2

我是codeigniter的新手,我一直试图弄清楚这一行出了什么问题

这是我的控制器

class Product extends CI_Controller{

    function index(){
        $this->load->model('product_model');
        $data['products'] = $this->product_model->get_all_products();
        $this->load->view('all_products', $data); 

    }
}

这是我的模特

class Product_model extends CI_Model {

    function get_all_products(){
        $query = $this->db->get('products');
        if($query->num_rows() > 0){
            foreach($query->result() as $row){
                $data[] = $row;
            } 
            return $data;
        }
    }
}

这是我的错误

A PHP Error was encountered

Severity: Notice

Message: Undefined property: Product::$db

Filename: core/Model.php

Line Number: 50
Fatal error: Call to a member function get() on a non-object in /Users/matt/Sites/ci/application/models/product_model.php on line 9el.php on line 6

错误在这一行

$query = $this->db->get('products');

为什么它失败了codeigniter文档以这种方式描述...我还有一个产品表

3 个答案:

答案 0 :(得分:12)

$autoload['libraries'] = array('database');

在application / config / autoload.php

答案 1 :(得分:0)

你需要检查两件事


1-你不缺少构造函数

class Product_model extends CI_Model {

    function __construct(){
      parent::__construct();
    }

}

2-你已经加载了数据库库。转到 application / config / autoload.php 并在自动加载库中添加“数据库”。

$autoload['libraries'] = array('database');

答案 2 :(得分:0)

您必须使用此$autoload['libraries']

进行自动加载并替换$autoload['libraries'] = array('database', 'form_validation');