Laravel 选中复选框时存储值

Laravel Store Value if Checkbox is Checked

我在 Laravel 中存储了多个值。在表单中,我有每个输入的复选框,如果为该输入选中了复选框,我想存储值。我面临的问题是无论我选中哪个复选框,它总是从第一个输入值中保存。如果我选中一个选项,它会存储第一个值。如果我选中 2 个选项,它会存储第一个和第二个值,依此类推。

这是复选框的形式

<input type="checkbox" name="checked[]" value="{{ $employee->id }}">

存储方式

public function store(Request $request)
    {
        foreach ($request->employee_id as $key => $val) {
            $payrolls = new Payroll;
            if (isset($request->checked[$key])) {
                $payrolls->basic = $request->basic[$key];
                $payrolls->employee_id = $val;
                $payrolls->save();
            }
        }

        return redirect('/');
    }

方法是通过key设置校验,但是在checked的数组中需要通过value来查找,使用方法in_array()

public function store(Request $request)
{
    foreach ($request->employee_id as $key => $val) {
        $payrolls = new Payroll;
        if (in_array($val, $request->checked)) {
            $payrolls->basic = $request->basic[$key];
            $payrolls->employee_id = $val;
            $payrolls->save();
        }
    }

    return redirect('/');
}