что не так с этой строкой? - PullRequest
4 голосов
/ 09 апреля 2011

Я новичок в 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 ]

12 голосов
/ 09 апреля 2011

try

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

в приложении / config / autoload.php

0 голосов
/ 08 июня 2013

Вы должны перейти в автозагрузку и заменить $autoload['libraries'] на $autoload['libraries'] = array('database', 'form_validation');

0 голосов
/ 19 июля 2012

нужно проверить две вещи1 - вы не пропустили конструктор

class Product_model extends CI_Model {

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

}

2 - вы загрузили библиотеку базы данных.Перейдите в application / config / autoload.php и добавьте «database» в библиотеки автозагрузки.

$autoload['libraries'] = array('database');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...