php多次重复new一个类,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并尝试编辑其主键,以便存在具有相同主键的其他行导致失败.

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

标签:php,mysql,laravel,eloquent

来源: https://codeday.me/bug/20190702/1360421.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值