在课堂上调用时Codeigniter错误

时间:2013-08-24 15:02:12

标签: php codeigniter

我的模特作者功能就像那样

class Authors  extends CI_Model{

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

    function available_username($text)
    {
        $this->db->query("SELECT username FROM tbl_users WHERE username='$text' LIMIT 1");
        if($this->db->affected_rows() == 0)
        {
            return TRUE;
        } 
        else 
        {
            return FALSE;
        }
    }
}

我在我的课堂上调用这个功能

   $CI =& get_instance();
   $CI->load->model('authors');
   $username = "Danny";
   if($CI->authors->available_username($username) == TRUE)
   {
       $fUsername = TRUE;
   }
   else
   {
       $fUsername = FALSE;
   }

我认为它是正确的方法,但我得到模型错误

    Fatal error: Call to a member function query() on a non-object

2 个答案:

答案 0 :(得分:0)

您不需要使用$ CI =&来调用/加载您的模型get_instance();

在控制器上,您可以像这样加载:

$ this-> load-> model(“yourModelName”,“alias”); //别名可选

然后,您可以使用以下方法:$ this-> yourModelName-> method();

现在让我们来谈谈错误:当您在IF()语句中输入一个像您一样的复杂调用时会发生这种情况。 相反,这样做:



     $stuff = $CI->authors->available_username($username);
       if($stuff == TRUE)
       {
           $fUsername = TRUE;
       }
       else
       {
           $fUsername = FALSE;
       }

当你把这种陈述放在变量上时,就会发生魔法!

别忘了告诉我它是否有效:D

答案 1 :(得分:0)

我认为你的问题是你没有加载数据库。

检查config / autoload.php

并且看到你已经加载了数据库,没有必要从自动加载加载数据库,但它通常。

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