php – Eloquent firstOrNew导致重复输入错误

我正在尝试找到一个项目,如果它存在则更新它,或者如果它不存在则创建一个新项目.但是,出于某种原因,它似乎试图创建一个新对象,而不是在数据库中已存在的情况下进行更新.

    $object = ObjectItem::firstOrNew(array('object_item_id'=>$userEditedObject['object_item_id'], 'object_id'=>$object_id));

    $object->setFields($userEditedObject);

    if($object->save()){
        return TRUE;
    } else {
        return FALSE;
    }

该代码似乎产生了错误

“SQLSTATE [23000]:完整性约束违规:1062重复条目’113’用于键’PRIMARY’

这很奇怪,因为我之前使用过它并且它工作正常 – 它似乎只是在这种特殊情况下.

最佳答案 这意味着数组$userEditedObject包含主键的重复值,通常为“id”.

您获得$object并尝试编辑其主键,以便存在具有相同主键的其他行导致失败.

查看哪个字段是您的应用程序的主键,并确保您没有创建任何重复项.

点赞