使用活动记录在codeigniter

时间:2016-02-22 22:28:33

标签: php codeigniter activerecord

所以我相信我做对了(我对活动记录不熟悉)。 我遇到的问题我不断收到错误

Message: Call to a member function getbank() on a non-object

我的代码很简单

控制器

class Profile extends CI_Controller
{
    function index()
    {
        $data = array();

        if($query = $this->profile_model->getbank())
        {
            $data['records'] = $query;
        }

        $this->load->view('profile_view', $data);
    }

}

模型

   class Profile_model extends CI_Model {

    function getbank()
{
    $query = $this->db->get('bank');
    return $query->results();
}

它如此简单,我看不到错误,谢谢。

2 个答案:

答案 0 :(得分:3)

试试这个

<强>控制器

class Profile extends CI_Controller
{
    function index()
    {
        $data = array();
        $this->load->model('profile_model'); # Added
        $query = $this->profile_model->getbank(); # Changed

        if(!empty($query)) # Changed
        {
            $data['records'] = $query;
        }

        $this->load->view('profile_view', $data);
    }
}

<强>模型

class Profile_model extends CI_Model {

    public function getbank()  # Changed
    {
        $query = $this->db->get('bank');
        return $query->result();  # Changed
    }
}

<强>更新

简单回答,感谢所有尝试过帮助的人。我的模型文件名有一个小写字母而不是大写字母。

Eg profile_model.php

should be Profile_model.php

然而,这个解决方案优雅而简单,所以它改进了我的代码,所以我接受这个。

答案 1 :(得分:1)

可能是因为你没有加载你的模型? 尝试将控制器更改为:

class Profile extends CI_Controller
{
    function index()
    {
        $data = array();

        $this->load->model('Profile_model');

        if($query = $this->Profile_model->getbank())
        {
            $data['records'] = $query;
        }

        $this->load->view('profile_view', $data);
    }

}