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));
}