使用 if 在 laravel 中查找平均值
using if to find avg in laravel
我想使用 if 显示计数平均值,但不起作用,
这是我的代码,
public function update(Request $request,Pt $pt)
{
$query = DB::table('macs');
if ($request->loin == 'AA/A') {
$query->whereIn('sap_code',['108591','108592'])->avg('mac');
}
if ($request->loin == 'B') {
$query->where('sap_code','108593')->avg('mac');
}
$mac = $query->get('mac');
Pt::where('id',$pt->id)->update([
'lbs' => $request->lbs,
'loin' => $request->loin,
'mac' => $mac
]);
}
谢谢
当你使用avg-method时,它会直接return这个值。
if ($request->loin == 'AA/A') {
$mac = DB::table('macs')->whereIn('sap_code',['108591','108592'])->avg('mac');
} else {
$mac = DB::table('macs')->where('sap_code','108593')->avg('mac');
}
您可以使用 when 而不是 if
:
$mac = DB::table('macs')
->when(($request->loin == 'AA/A'), function ($query) {
return $query->whereIn('sap_code',['108591','108592']);
})
->when(($request->loin == 'B'), function ($query) {
return $query->where('sap_code', '108593');
})
->avg('mac');
我想使用 if 显示计数平均值,但不起作用,
这是我的代码,
public function update(Request $request,Pt $pt)
{
$query = DB::table('macs');
if ($request->loin == 'AA/A') {
$query->whereIn('sap_code',['108591','108592'])->avg('mac');
}
if ($request->loin == 'B') {
$query->where('sap_code','108593')->avg('mac');
}
$mac = $query->get('mac');
Pt::where('id',$pt->id)->update([
'lbs' => $request->lbs,
'loin' => $request->loin,
'mac' => $mac
]);
}
谢谢
当你使用avg-method时,它会直接return这个值。
if ($request->loin == 'AA/A') {
$mac = DB::table('macs')->whereIn('sap_code',['108591','108592'])->avg('mac');
} else {
$mac = DB::table('macs')->where('sap_code','108593')->avg('mac');
}
您可以使用 when 而不是 if
:
$mac = DB::table('macs')
->when(($request->loin == 'AA/A'), function ($query) {
return $query->whereIn('sap_code',['108591','108592']);
})
->when(($request->loin == 'B'), function ($query) {
return $query->where('sap_code', '108593');
})
->avg('mac');