私のlaravel 5.4アプリケーションに1対多(逆)の関係があります。シーンに関連して関連付けられたSale
とVehicle
の2つのモデルがあります。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側を攻撃する準備ができていない可能性があります。 –