在CodeIgniter中获取数据 - 致命错误:调用未定义的方法

时间:2014-05-26 08:59:52

标签: php mysql codeigniter

我是codeigniter的新手。我在一个使用codeigniter构建的软件中看到了belove代码

$this->view_data['customer'] = Customer::first(array('conditions'=>array('customer_id' => 311)));
$this->content_view = 'customer/customer_all';

以上行从customer表中获取customer_id = 311

的数据

现在我想从quotation_id = 12的报价表中获取数据 所以我写了下面的代码

$this->view_data['quotation'] = Quotation::first(array('conditions'=>array('quotation_id' => 12)));
 $this->content_view = 'quotation/quotation_all';

但此代码无法正常工作并显示错误

Fatal error: Call to undefined method Quotation::first() in C:\wamp\www\pms\application\controllers\quota.php on line 26

任何正文都可以帮我说明这段代码是如何运作的

先谢谢

3 个答案:

答案 0 :(得分:0)

如果first()类中没有Quotation函数,那么这就是您收到此错误的原因。您正在尝试调用不存在的函数。

答案 1 :(得分:0)

该功能在Customer Class中定义,但在Quotation Class中未定义。 尝试在Quotation Class中定义它。

答案 2 :(得分:0)

您引用的代码将具有如下结构:

class Customer{
   .
   .
   .
   public static function first($where){
   ....
   }

}

OR

class Customer extends SomeOtherClass{
    // the function first() might be present in the SomeOtherClass class.
}

您的班级Quotation缺少此功能。因此,显示的错误告诉您它试图在您的班级first()中查找函数Quotation,但没有找到它。

编辑:根据你的评论,是的,你是对的。 Customer类必须扩展另一个包含公共函数first()的类。这是在first()类中找不到Customer的唯一解释。

Example