我想计算DB的总数work_time

I want to calculate the total work_time of DB

我要选择完成时的总工作时间

workController

public function store(CreateWorkRequest $request, Project $project)
{
    $work = new Work;
    $work->fill($request->all())->save();
    $project -> fill(['status' => $request->status])->update();

    if($request->status === 'completed')
    {
        $alltime = $item->select('work_time')->get();
        $project -> fill(['total_work_time' => $alltime])->save();
    }

    return redirect()->route('work.index', ['project' => $project->id]);
}

但是 none 有效。

如何找到所选 table 中特定列的总和?

我试过了:

if($request->status === 'completed')
{
    $alltime = 0;
    $items =  Work::where('project_id', $project->id)->get();
    foreach($items as $item)
    {
        $time = $item->select('work_time')->get();
        $alltime += $time;
    }
    $project -> fill(['total_work_time' => $alltime])->save();
}

但它并没有像预期的那样运行。

您应该可以通过以下查询获得总工作时间:

$totalWorkingTime = Work::query()
    ->where('project_id', $project->id)
    ->sum('work_time');