【问题标题】:Laravel Store Value if Checkbox is Checked如果选中复选框,则 Laravel 存储值
【发布时间】: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])

标签: php html laravel laravel-5.6


【解决方案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
猜你喜欢
  • 1970-01-01
  • 2021-08-23
  • 2015-09-02
  • 2016-03-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多