如果选中复选框,则 Laravel 存储值

Posted

技术标签:

【中文标题】如果选中复选框,则 Laravel 存储值【英文标题】:Laravel Store Value if Checkbox is Checked 【发布时间】:2018-09-03 03:19:21 【问题描述】:

我在 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('/');
    

【问题讨论】:

你确定第一个检查的值是假的吗? 是的,我检查了很多次。 任何 JS 参与? 还没有。我更喜欢仅使用 php 的解决方案 使用isset($request-&gt;get('checked')[$key]) 【参考方案1】:

方法isset通过key进行检查,但是在checked的数组中需要按值查找,使用方法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('/');

【讨论】:

收到错误in_array() expects at least 2 parameters, 1 given

以上是关于如果选中复选框,则 Laravel 存储值的主要内容,如果未能解决你的问题,请参考以下文章

如果选中复选框,则角度 5 使用其他字段值填充表单字段

如果选中,则反应复选框将值添加到数组

如果选中则如何更新数据库1的复选框值,如果未选中则更新为0?

如果选中第一个复选框,则根据条件禁用其他复选框

Laravel 无法取消选中使用 old 并设置默认值的复选框

如果选中相邻复选框,则输入字段验证