我希望选择完成后的总工作时间。
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();
}
但是它没有按预期运行。
答案 0 :(得分:3)
您应该能够通过以下查询获得总工作时间:
$totalWorkingTime = Work::query()
->where('project_id', $project->id)
->sum('work_time');