使用laravl5在更新时忽略空表单值

时间:2017-10-20 13:40:40

标签: laravel-5 laravel-eloquent laravel-query-builder

无论如何要删除空表单值表单request-> all()方法? 这就是我在更新时尝试做的事情,换句话说,只是填写表格值。

influx_data = json.dumps(write_to_influx_json)

注意:我有动态生成的列,所以我想我不能在参数列表中使用这些列。

这会更新行的所有列,但我想只更新那些值已填充的列,而其余的列/字段保持相同的旧值

2 个答案:

答案 0 :(得分:1)

查看array_filter

// All posted data except token and id
$data = request()->except(['_token','id']);

// Remove empty array values from the data
$result = array_filter($data);

// update record
DB::table($table)->where('id', $arr)->update($result);

希望这有帮助。

答案 1 :(得分:0)

// app/controllers/GiftsController.php

public function update($id)
{
    // Grab all the input passed in
    $data = Input::all();

    // Use Eloquent to grab the gift record that we want to update,
    // referenced by the ID passed to the REST endpoint
    $gift = Gift::find($id);

    // Call fill on the gift and pass in the data
    $gift->fill($data);

    $gift->save();
}

我在this tutorial中发现了这段代码,其工作原理很像魅力。希望对您有所帮助。