1

这是我的第一个 OOP php 应用程序,我在这里有点难过......

我创建了以下扩展 CI_Model 的类

class LXCoreModel extends CI_Model{

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



public function elementExists($table,$row,$data){
     $result = $this->db->select('*')->from($table)->where($row, $data)->get()->result();
     if(empty($result))return false;
     return true;
}
}

这是扩展上述类的类:

class LXAccAdminModel extends LXCoreModel{

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

function addAccountStatus($statusId=NULL, $username=NULL){
    if($statusId==NULL)$statusId = $this->input->post('accountStatusId');
    if($username==NULL)$username = $this->input->post('username');

    if(elementExists('accounts','username',$username))
            if(elementExists('statuses','id',$statusId))
            {$this->db->insert('accountstatus',array('statusid'=>$statusId,'username'=>$username)); return true;}
    return false;
}
}

这两个类都在模型目录中,并且 LXCoreModel 类是自动加载的(行 $autoload['model'] = array('LXCoreModel'); 存在于 autoload.php 文件中)但是,当我尝试运行我的代码时我收到此错误:

致命错误:在第 25 行调用 C:\wamp\www\CI_APP\application\models\LXAccAdminModel.php 中未定义的函数 elementExists()

谢谢你的时间!:)

4

2 回答 2

1

您正在调用elementExists(),但不是作为类的方法。

尝试:

$this->elementExists();

或来自LXAccAdminModel

parent::elementExists();

$this->elementExists()在这两种情况下都应该足够了,$this指的是当前类。

于 2011-07-07T16:50:36.397 回答
0

如果我没有错,那么错误就在你的派生类中,你$this在调用elementExists()应该是的函数时忘记了$this->elementExists()

于 2011-07-07T16:53:04.710 回答