如果选中复选框,则 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->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 存储值的主要内容,如果未能解决你的问题,请参考以下文章
如果选中则如何更新数据库1的复选框值,如果未选中则更新为0?