1

我的模型作者功能是这样的

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
4

2 回答 2

0

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

检查 config/autoload.php

并且看到你已经加载了数据库,它不需要从自动加载中加载数据库,而是它通常。

$autoload['libraries'] = array('database');
于 2014-02-11T22:12:41.950 回答
0

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

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

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

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

现在让我们谈谈错误:当您在 IF() 语句中像您所做的那样进行复杂的调用时,就会发生这种情况。相反,请执行以下操作:


     $stuff = $CI->authors->available_username($username);
       如果($stuff == 真)
       {
           $f用户名=真;
       }
       别的
       {
           $f用户名=假;
       }

当你把这种语句放在一个变量上时,神奇的事情发生了!

不要忘记告诉我它是否有效:D

于 2014-02-11T22:03:56.573 回答