我在laravel 5.4应用程序中有一对多(反)关系。有两种型号Sale
和Vehicle
,它们与场景相关并与之相关。如何在Laravel的相关表格字段上聚合查询?
在Sale
模型的关系为:
public function vehicle()
{
return $this->belongsTo('App\Models\Vehicle','vehicle_id');
}
sales
表具有以下字段: id
,vehicle_id
,date_time
,status
等
表vehicles
具有以下字段: id
,reg_number
, volume
,status
等
我想要的是,Sale
记录在搜索条件中的字段'vehicles.volume'的总和。
我已经尝试了一些方法,如下列之一:
$query = Sale::where('status', 1);
$query = $query->where('date_time', '<', "2017-05-10 10:10:05");
$totalVolume = $query->whereHas('vehicle')->sum('vehicles.volume');
,并导致以下错误:
SQLSTATE[42S22]: Column not found: 1054 Unknown column 'vehicles.volume' in 'field list' (SQL: select sum(
vehicles
.volume
) as aggregate fromsales
wherestatus
= 1 anddate_time
< "2017-05-10 10:10:05" and exists (select * fromvehicles
wheresales
.vehicle_id
=vehicles
.id
))
希望等待一个解决方案“获得的量的总和销售'使用雄辩的查询。
- 编辑
我想你应该只是写出来的原MySQL查询开始其如果您直接使用Workbench,则会运行。然后,基于此,构建Laravel查询。如果你不能写MySQL查询,那么你可能还没有准备好攻击Laravel的一面。 –