调用未定义的方法codeigniter

时间:2013-08-30 14:11:37

标签: codeigniter codeigniter-2

我在做错了吗?我试图解决它,但没有。我做得很好,这是我第一次遇到这个错误。

 Fatal error: Call to undefined method Team_model::exist_team() in C:\wamp\www\example\application\libraries\teams.php on line 28

这是我的图书馆:

class Teams { // My class

    function __construct()
    {
        $this->ci =& get_instance();
        $this->ci->load->model('team_model');
    }


    function exist_team($team_id) { // this function give me that error

        if ($query_get_info = $this->ci->team_model->exist_team($id_team)) { // line with error
            return $query_get_info[0];
        } else {
            return false;
        }
    }

}

这是我的模特

class Team_model extends CI_Model {

    function exist_team($id_team) { // function exixst team in library
        $this->db->select('*');
        $this->db->from('teams');
        $this->db->where('url',$id_team);
        $query = $this->db->get();
        if ($query->num_rows() == 0) {
            return false;
        } else {
            return $query->result();    
        }
    }
}

2 个答案:

答案 0 :(得分:2)

我能够在干净的CI安装上运行它而不会出错。这是我要检查的内容:

  1. 确保您的模型和库的文件名都是大写的。 (Team_model.php& Teams.php)。 *注意 - Codeigniter Docs声明只有库名称必须大写,但在GitHub上使用当前版本,加载失败,除非两个文件都大写。

  2. 在构造函数范围之外声明CI变量。这应该不是问题,但值得探讨。

    class Teams { 
      private $_ci;
    
      function __construct()
      {
        $this->_ci =& get_instance();
        $this->_ci->load->model('team_model');
      }
    }
    
  3. 无关,但有错误:您使用$team_id,然后使用$id_team

    function exist_team($team_id) {
    
    if ($query_get_info = $this->ci->team_model->exist_team($id_team)) {
    

答案 1 :(得分:0)

检查模型名称的拼写错误,如果有任何拼写错误或与原始模型不同的名称显示未定义方法的错误。