laravel - 使用 if 在 laravel 中查找 avg
问题描述
我想使用 if 显示 count avg,但不工作,
这是我的代码,
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时,它将直接返回该值。
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');
推荐阅读
- regex - 如何匹配\"而不是"
- amazon-web-services - 是否可以阻止 AWS API Gateway 创建的代理中的某些 API?
- javascript - 我怎样才能简化这个返回语句?
- node.js - Post 请求发送未定义数据 inn flutter app
- callback - Flutter - 从一个子类调用方法到另一个子类
- javascript - 数组作为 React 中的状态?
- html - 当球通过时如何使环/箍翻转?
- java - 页面加载后异步 AJAX 返回
- python - 我想删除python列表中的特定列表
- mysql - 我用 try-catch 块包裹,但应用程序崩溃了