CodeIgniter4报错:调用未定义方法Connection::select()
CodeIgniter4 关联数据表报错解决思路
报错原因
Call to undefined method CodeIgniter\Database\Postgre\Connection::select() 是因为你直接在数据库连接实例($this->conn)上调用了QueryBuilder的方法。在CI4中,select()、from()、join()这些属于QueryBuilder类的方法,不能直接通过Connection实例调用。
解决方法
需要先通过连接实例获取QueryBuilder对象,再调用查询方法,有两种常用写法:
写法一:先获取QueryBuilder实例
public function getLoad() { // 通过table()获取对应表的QueryBuilder实例 $builder = $this->conn->table('academics.tbl_teaching_load load'); $q = $builder->select('load.level_id, load.section_id, sub.subject_title, sub.subject_name') ->join('academics.tbl_subjects sub', 'sub.subject_id = load.subject_id') ->where('user_id', $this->request->getVar('user_id')) ->get()->getResult(); echo json_encode($q); }
写法二:链式直接调用table()
public function getLoad() { $q = $this->conn->table('academics.tbl_teaching_load load') ->select('load.level_id, load.section_id, sub.subject_title, sub.subject_name') ->join('academics.tbl_subjects sub', 'sub.subject_id = load.subject_id') ->where('user_id', $this->request->getVar('user_id')) ->get()->getResult(); echo json_encode($q); }
额外验证
确保$this->conn已经正确初始化,比如在类的构造函数中:
public function __construct() { // 初始化数据库连接,使用默认连接可省略参数 $this->conn = \Config\Database::connect(); }
内容的提问来源于stack exchange,提问作者BERNARDO John Paul Adrian D
相关产品推荐
相关产品推荐

