使用非可空字段的默认值进行更新

时间:2018-04-28 11:32:35

标签: laravel

我的表sample中有一个字段,该字段有默认值,但此字段不接受NULL值。

当我更新我的表单时,如果我将这些字段留空

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

正在返回错误

  

列'sample'不能为null(SQL:update mytable set updated_at   = 2018-04-28 11:13:46,sample =,name ='test'其中id = 1)

使用非填充字段的默认值更新模型的最佳方法是什么?

3 个答案:

答案 0 :(得分:1)

您可以使用数组过滤器函数过滤$ request数组以消除空输入值:

$model->update(array_filter($request->all())); 

答案 1 :(得分:0)

我认为您首先检查示例字段获取null然后设置默认值。

if (empty($request->get('sample', null))) {
    $request->replace(['sample' => '-- Your default value --']);
}

然后,

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

感谢。

答案 2 :(得分:0)

使用此功能从输入中删除null值:

$input = array_filter($request->all(), function($value) {
    return !is_null($value);
});
$model->update($input);