【发布时间】:2018-02-22 23:17:01
【问题描述】:
我的 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) 作为来自sales的聚合,其中status= 1 和date_timevehicles 中选择*,其中sales.vehicle_id=vehicles.id))
希望等待使用 eloquent 查询“获取销售量总和”的解决方案。
- 已编辑
【问题讨论】:
-
我认为您应该首先写出如果您直接使用 Workbench 将运行的原始 MySQL 查询。然后,基于此,构建 Laravel 查询。如果你不能编写 MySQL 查询,那么你可能还没有准备好攻击 Laravel 方面。
标签: php mysql laravel laravel-5.4