创建或更新行 Laravel

Create or update rows Laravel

我尝试使用请求的数据更新或创建 table,在更新时它有效,但在创建时我只能为 1 做。因此,如果我有 4 个新项目,则只保存 1 个,不知道为什么,也没有错误。如果我转储请求,我将拥有所有值。

$answers = new LkpAnswer;

    foreach ($request->items as $key => $item) {
        if (isset($item['id'])) {
            $answers->where('id', $item['id'])->update($item);
        } else {
            $answers->fill($item)->save();
        }
    }

请尝试以下代码:

foreach ($request->items as $key => $item) {
    if (isset($item['id'])) {
        LkpAnswer::where('id', $item['id'])->update($item);
    } else {
        $answers = new LkpAnswer; //new up an empty model(object) then fill it with your array of data, and finally save it.
        $answers->fill($item)->save();
    }
}

这应该可以通过内置方法巧妙地实现:

foreach ($request->items as $item) {
    LkpAnswer::updateOrCreate($item['id'],$item);
}

确保相关字段可填写 - 请参阅 mass assignment protection