You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

CodeIgniter中关联deliverer与address表查询问题求助

CodeIgniter实现entregador与address表的关联查询

要完成两表关联查询,你可以用CodeIgniter数据库类的join()方法实现。首先确认两个表的关联字段,比如假设entregador(配送员表)有外键字段(如address_id),关联address(地址表)的主键(如id)。

修改你的Model代码如下:

public function SelecionaTodos() {
    // 按需指定要查询的字段,避免冗余数据
    $this->db->select('entregador.*, address.*');
    // 指定主表为entregador
    $this->db->from('entregador');
    // 左连接address表,确保无地址关联的配送员也能被查询到
    $this->db->join('address', 'entregador.address_id = address.id', 'left');
    // 保持原逻辑,限制返回100条数据
    $retorno = $this->db->get(100);

    return $retorno->result();
}

代码说明:

  • select():可根据业务需求列出具体字段,比如entregador.nome, address.rua, address.numero,避免查询不必要的字段
  • join():第一个参数是关联表名,第二个参数是两表的关联条件,第三个参数是连接类型(left为左连接,还可选择inner、right等,按需调整)
  • 因为已经用from()指定了主表,get()方法无需再传入表名,只保留限制条数的参数即可

你的Controller代码不需要修改,调用Model的SelecionaTodos()方法后,返回的结果集会包含两个表的关联数据,直接在视图中使用字段即可。

内容的提问来源于stack exchange,提问作者Claudio Dias

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 11:55:17