我在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的一面。 –