Codeigniter调用非对象中的成员函数database()

时间:2013-02-25 19:42:35

标签: database codeigniter autoload

是的是的,我已经在整个互联网上搜索了这个问题。甚至从Stackoverflow发现了一些结果。但他们中的大多数人说“你应该自动加载数据库”或“parent :: __ construct();”像代码。我主要尝试了所有这些。仍然没有结果。它刚刚杀了我。

我的桌子名为“我们”。我只需要从中读取数据。

型号: application / models / we_model.php

 class We_model extends CI_Model {

    function __construct() {

        parent::__construct();
        $this->load->database();
    }

    public function get_all_we() {

        $query = $this->db->get('we');
        return $query->result();
    }
}

控制器: applicatoin / controllers / home.php

class Home extends CI_Controller {

    function __construct() {

        parent::__construct();
        $this->load->model('we_model');
    }

    public function index() {

        $data['we_lists'] = $this->we_model->get_all_we();
        $this->load->view('home_template_view', $data);
    }
}

自动加载: application / config / autoload.php

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

截图: Error screenshot

我正在使用Codeigniter 2.1.3,Wampserver 2.2e,PhpStorm 5.0.4以及this教程。

更新 我看了this forum。他说,在将编辑器从Eclipse切换到Dreamweaver后,代码工作正常。所以我将我的IDE从PHPStorm改为Sublime文本2.代码现在正常工作。你能解释一下吗?

2 个答案:

答案 0 :(得分:3)

无需在模型中调用$this->load->database();

在autoload.php中使用它:

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

答案 1 :(得分:1)

如果你不是自动加载数据库库(老实说你真的应该)改变这一行:

$this->load->database();

$this->load->library('database');