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

时间:2016-11-22 10:16:21

标签: php laravel laravel-5 eloquent

我在数据库中有show_headershow_footer个字段,值可以是1或0.

<input type="checkbox" name="show_header" checked="checked" value="1">
<input type="checkbox" name="show_footer" checked="checked" value="1">

假设数据库中show_headershow_footer设置为1,并且您在表单中取消选中它们,请求输入将不包含show_headershow_footer字段,因为它未被选中。

那么如何解决这个问题呢?在数据库中将show_headershow_footer更新为0?

示例:

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

 $page->update($request->all());   

如果你这样做:

dd($request->all())

您不会找到show_headershow_footer,因为未选中复选框,因此$page->update($request->all());无法设置show_headershow_header在数据库中为0。

2 个答案:

答案 0 :(得分:3)

您可以在更新前检查并将默认值设置为$("h3").text(function () { return $(this).text().replace("Rs.", "<i class='fa fa-inr'></i>"); }); ,因此如果属性不在此处,只需将其设置为0

0

希望这有帮助。

答案 1 :(得分: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));
}