我正在尝试更新所有选定员工的出勤列outtime
以及结帐时间。在intime
期间,签到时间已成功存储在数据库中,但我遇到了麻烦随着更新。我做了类似下面的事情,但它正在更新唯一的第一行。应该写什么查询有人可以帮助我吗?
AttendanceController.php
public function checkout(Request $request)
{
$request->validate([
'outtime' => 'required',
'employee_id' => 'required',
]);
$outTime = Carbon::parse($request->outtime)->format('H:i:s');
$date = date('Y-m-d');
$employeeIds = $request->employee_id;
$data = [];
foreach ($employeeIds as $employeeId) {
$data[] = [
'employee_id' => $employeeId,
'attendance_date' => $date,
];
}
$update = Attendance::where('employee_id', $data)
->where('attendance_date', $date)
->update([
'outtime' => $outTime
]);
return back()->with('success', 'Checked Out');
}
最佳答案
使用这个:
whereIn('employee_id', $employeeIds)
关于php - 在 Laravel 中一次更新多列值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49718955/