我在Laravel中有一个带有多个复选框的编辑表单。当我选中这些框并更新记录时,它可以正常工作,但是如果我取消选中该框,它不会返回任何值,因此该记录不会更新,并且该值在数据库中仍为true。
如何处理Laravel中未选中的复选框?
waj*_*jih 15
尝试这个
<input type="hidden" name="param" value="0">
<input type="checkbox" name="param" value="1">
Run Code Online (Sandbox Code Playgroud)
如果选中复选框 => 服务器获取“1”
否则 => 服务器获取“0”
All*_*cía 10
在复选框之前放置一个隐藏的文本框,其值为0 ,这样会将0值发送到POST数组中。
{{Form::hidden('value',0)}}
{{Form::checkbox('value')}}
Run Code Online (Sandbox Code Playgroud)
如果提交表单时未选中复选框,则没有任何值提交到服务器以表示其未选中状态(例如value = unchecked);该值根本不会提交给服务器。
因此,以下将达到目的:
$isChecked = $request->has('checkbox-name');
Run Code Online (Sandbox Code Playgroud)
我能想到的最好的方法是使用三元和空合并 PHP 运算符:
$request->checkbox ? 1 : 0 ?? 0;
Run Code Online (Sandbox Code Playgroud)
1如果选中,则返回,0如果未选中或不可用,则返回。