php - 在 Laravel 中一次更新多列值

标签 php mysql sql laravel eloquent

我正在尝试更新所有选定员工的出勤列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/

相关文章:

php - Codeigniter 分页在 Controller 中获取实际结果总计

mysql - 如何在异步函数中发出post请求?

php - 通过 PHP 使用 sudo 执行 shell 命令

php - MySQL选择百万条记录生成url

php - Laravel 中密码的默认哈希类型

mysql - 如何使用node-orm2在MySQL表中搜索字符串?

mysql - SQL中如何连接两个表?

c++ - C++ 中的 SQL 数据库

java - Ebean:如何正确选择值所在的行?

mysql - 如何处理 SQL Loader 中的条件空间?