我想计算数据库的总work_time

时间:2019-09-09 05:55:44

标签: laravel laravel-5 eloquent laravel-5.8

我希望选择完成后的总工作时间。

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]);
}

但是这些都不起作用。

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

我尝试过:

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();
}

但是它没有按预期运行。

1 个答案:

答案 0 :(得分:3)

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

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