添加表前缀以加入 Codeigniter

Mot*_*ive 0 php codeigniter

我有 Codeigniter 设置将前缀 kms_ 添加到我的活动记录查询中。但是,我正在尝试使用两个 ON 条件进行连接,并且它没有预先添加它们。

现在我必须像这样手动添加它们:

$this->db->join('site_items', 'kms_site_items.item_id = kms_items.id AND kms_site_items.site_id = 1', 'left');
Run Code Online (Sandbox Code Playgroud)

我可以用不同的方式写这个以便正确添加表前缀吗?

有没有办法让这样的事情工作:

$this->db->join('site_items', 'site_items.item_id = items.id AND site_items.site_id = 1', 'left');
Run Code Online (Sandbox Code Playgroud)

swa*_*ins 6

您可以像这样手动获取当前数据库前缀:

$prefixed_tablename = $this->db->dbprefix('tablename');
Run Code Online (Sandbox Code Playgroud)

所以你可以这样做:

$this->db->join('site_items', $this->db->dbprefix('site_items') . '.item_id = ' . $this->db->dbprefix('items') . '.id AND ' . $this->db->dbprefix('site_items') . '.site_id = 1', 'left');
Run Code Online (Sandbox Code Playgroud)

文档在这里