我在数据库中有show_header和show_footer字段,值可以为1或0.
假设在数据库中将show_header和show_footer设置为1,并且在表单中取消选中它们两者,则请求输入将不包含show_header和show_footer字段,因为未选中它们.
那么如何解决这个问题,以将数据库中的show_header和show_footer更新为0?
范例:
$page = Page::where('user_id', 1);
$page->update($request->all());
如果您这样做:
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);
希望这可以帮助.
标签:laravel,laravel-5,eloquent,php
来源: https://codeday.me/bug/20191112/2024105.html