登录

thinkphp5 关联模型的聚合查询怎么操作,求实例。

有两个表:bill(票据)和detail(票据明细)

bill字段:billid(票据ID),billdate(开票日期),total(合计金额)...

detail字段:detailid(明细ID), billid(票据ID), amount(金额), incometype(收入类别)...

建立两个模型:

class Bill extends Model {

    //关联到票据明细表

    public function detail(){

        return $this->hasMany('Detail', 'billid');

    }

}

class Detail extends Model{

    //关联到票据表

    public function bill(){

        return $this->belongsTo('Bill', 'billid');

    }

}

问:若要使用模型对象,按票据明细表中的收入类别进行统计收入金额,该怎么写?

# PHP
phpcn_u16587 phpcn_u16587 2433 天前 1267 次浏览

全部回复(1) 我要回复

  • 天蓬老师

    天蓬老师2017-08-21 08:26:43

    显然,你将票据明细表当作了当前模型,票据表当做了关联模型。

    关联模板默认为内联接查询。建议分为二步:

    第一:根据票据ID,先进行关联查询获取到全部关联数据;

    第二:将获取到的数据,按收入类别进行分组,然后再进行统计操作,注意用别名进行区分。

    建议用闭包查询来简化操作。

    如果不理解,可以再把官方手册有关于模型关联查询部分再仔细看看,或者看一下框架源码相关部分:

    https://www.kancloud.cn/manual/thinkphp5/142358

    回复
    0
  • 取消 回复 发送