Php 未选中复选框值以更新请求

Php 未选中复选框值以更新请求,php,laravel,laravel-5,eloquent,Php,Laravel,Laravel 5,Eloquent,我在数据库中有show_header和show_footer字段,值可以是1或0 <input type="checkbox" name="show_header" checked="checked" value="1"> <input type="checkbox" name="show_footer" checked="checked" value="1"> 如果您这样做: dd($request->all()) 由于未选中复选框,因此您将无法找到show_

我在数据库中有
show_header
show_footer
字段,值可以是1或0

<input type="checkbox" name="show_header" checked="checked" value="1">
<input type="checkbox" name="show_footer" checked="checked" value="1">
如果您这样做:

dd($request->all())

由于未选中复选框,因此您将无法找到
show_header
show_footer
,执行
$page->update($request->all())
它不能将数据库中的
show_header
show_header
设置为0

您可以在更新之前进行检查,并将默认值设置为
0
,因此如果属性不在此处,只需将其设置为
0

$page = Page::where('user_id', 1);

$data = $request->all();
$data['show_header'] = $request->input('show_header',0);
$data['show_footer'] = $request->input('show_footer',0);

$page->update($data);  

希望这有帮助。

在控制器中尝试以下操作:

$page = Page::where('user_id', 1);
if( $request->has('show_header') && $request->show_header == 1 ){
    $page->update(array_add($request->all(), 'show_footer', 0));
}else{
    $page->update(array_add($request->all(), 'show_header', 0));
}

请澄清您的具体问题或添加其他详细信息,以突出显示您所需的内容。正如目前所写的,很难准确地说出你在问什么。@ZakariaAcharki我已经更新了它。使用隐藏的输入。请参阅-向我们显示从dd()@I'll-Be-Back获得的输出:使用post检查控制器中是否设置了Show_页眉和Show_页脚,如果未设置,则将值设置为0,然后保存。
$page = Page::where('user_id', 1);
if( $request->has('show_header') && $request->show_header == 1 ){
    $page->update(array_add($request->all(), 'show_footer', 0));
}else{
    $page->update(array_add($request->all(), 'show_header', 0));
}