我的laravel 5.4应用程序中有一对多(反向)关系 . 有两个模型 Sale
和 Vehicle
与场景相关并相关联 .
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]:未找到列:1054'字段列表'中的未知列'vehicles.volume'(SQL:选择sum(vehicles.volume)作为销售的汇总,其中status = 1且date_time <“2017-05-10 10:10:05“并且存在(选择*来自sales.vehicle_id = vehicles.id的车辆))
希望能够使用雄辩的查询等待“获得销售量总和”的解决方案 .
- Edited
2 回答
在汇总
vehicles.volume
列之前,您需要使用连接