我的扩展CodeIgniter 2.0.2类没有看到它的父类方法

时间:2011-07-07 16:47:16

标签: php codeigniter-2

这是我的第一个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;
}
}

这两个类都在Model diretory中,而类LXCoreModel是自动加载的(行$ autoload ['model'] = array('LXCoreModel');存在于autoload.php文件中)然而,当我尝试运行我的代码我收到此错误:

  

致命错误:调用未定义   function elementExists()in   C:\ WAMP \ WWW \ CI_APP \程序\型号\ LXAccAdminModel.php   第25行

感谢您的时间! :)

2 个答案:

答案 0 :(得分:1)

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

尝试:

$this->elementExists();

或者来自LXAccAdminModel

parent::elementExists();

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

答案 1 :(得分:0)

如果我没有错,则错误发生在您的派生类中,您忘记在调用应$this的{​​{1}}函数时放置elementExists()