如何处理Laravel中未选中的复选框?

All*_*cía 2 checkbox laravel

我在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)

  • 我用于更新的控制器代码是`$ module-&gt; update($ request-&gt; only($ module-&gt; getFillable()));`,所以这是唯一对我有用的东西。 (2认同)

Jom*_*oos 6

复选框的mozilla文档中

如果提交表单时未选中复选框,则没有任何值提交到服务器以表示其未选中状态(例如value = unchecked);该值根本不会提交给服务器。

因此,以下将达到目的:

$isChecked = $request->has('checkbox-name');
Run Code Online (Sandbox Code Playgroud)


Mr.*_*Web 6

我能想到的最好的方法是使用三元和空合并 PHP 运算符:

$request->checkbox ? 1 : 0 ?? 0;
Run Code Online (Sandbox Code Playgroud)

1如果选中,则返回,0如果未选中或不可用,则返回。