4

我是 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文档描述它的方式......我也有一个产品表

4

3 回答 3

12

尝试

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

在 application/config/autoload.php

于 2011-04-08T20:39:32.417 回答
0

您需要检查两件事

1-您没有缺少构造函数

class Product_model extends CI_Model {

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

}

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

$autoload['libraries'] = array('database');
于 2012-07-19T18:58:32.810 回答
0

你必须去自动加载并$autoload['libraries']用这个替换$autoload['libraries'] = array('database', 'form_validation');

于 2013-06-08T12:33:59.783 回答