有两个表: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');
}
}
问:若要使用模型对象,按票据明细表中的收入类别进行统计收入金额,该怎么写?
显然,你将票据明细表当作了当前模型,票据表当做了关联模型。
关联模板默认为内联接查询。建议分为二步:
第一:根据票据ID,先进行关联查询获取到全部关联数据;
第二:将获取到的数据,按收入类别进行分组,然后再进行统计操作,注意用别名进行区分。
建议用闭包查询来简化操作。
如果不理解,可以再把官方手册有关于模型关联查询部分再仔细看看,或者看一下框架源码相关部分:
https://www.kancloud.cn/manual/thinkphp5/142358