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

2つのことを確認する必要があります

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 に答える