我是使用codeigniter并且在我的一个模型构造函数中,我有以下
public function __construct()
{
parent::__construct();
$DB2 = $this->load->database('std', TRUE);
}
在我的方法中:
public function get_users_groups($id=FALSE)
{
$this->trigger_events('get_users_group');
//if no id was passed use the current users id
$id || $id = $this->session->userdata('user_id');
return $DB2->select($this->tables['users_groups'].'.'.$this->join['groups'].' as id, '.$this->tables['groups'].'.name, '.$this->tables['groups'].'.description')
->where($this->tables['users_groups'].'.'.$this->join['users'], $id)
->join($this->tables['groups'], $this->tables['users_groups'].'.'.$this->join['groups'].'='.$this->tables['groups'].'.id')
->get($this->tables['users_groups']);
}
我得到一个未定义的变量$ DB2可以告诉我我在做什么wrog plase?
答案 0 :(得分:3)
$ DB2只能在构造函数范围内使用,它必须是类属性,如下所示:
class Whatever
{
protected $DB2;
public function __construct() {
parent::__construct();
$this->DB2 = $this->load->database('std', TRUE);
}
public function get_users_groups($id=FALSE)
{
// other code
$this->DB2->select( ....
// other code
}
}