использование if для поиска avg в laravel

использование if для поиска avg в laravel

12.03.2020 04:47:03 Просмотров 21 Источник

я хочу показать count avg с помощью 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
    ]);
}

спасибо

У вопроса есть решение - Посмотреть?

Ответы - использование if для поиска avg в laravel / using if to find avg in laravel

Является ответом!
TsaiKoga

12.03.2020 05:24:22

Когда вы используете avg-метод, он будет возвращать значение непосредственно.

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');
Закрыть X