Php 如何避免;重复的键值违反了唯一约束;使用Laravel是否有说服力?

Php 如何避免;重复的键值违反了唯一约束;使用Laravel是否有说服力?,php,postgresql,laravel-5.2,Php,Postgresql,Laravel 5.2,考虑到以下代码,使用Postgres+Laravel 5.2: $post = Post::firstOrNew(['title'=> 'title test']); $post->body = 'test body'; $post->save(); 每当多个进程在同一个数据上工作时,我就会得到原始数据 唯一冲突:7错误:重复键值违反唯一约束。 我已尝试使用此处建议的事务 但随后我调用了undefined方法illumb\Database\Query\Builder::sav

考虑到以下代码,使用Postgres+Laravel 5.2:

$post = Post::firstOrNew(['title'=> 'title test']);
$post->body = 'test body';
$post->save();
每当多个进程在同一个数据上工作时,我就会得到原始数据
唯一冲突:7错误:重复键值违反唯一约束。

我已尝试使用此处建议的事务 但随后我调用了undefined方法illumb\Database\Query\Builder::save()

例如:
Post::firstOrNew([…])->lockForUpdate()


我怎样才能解决这个问题呢?

如果你只是想摆脱它,就把它用try-catch块和catch-QueryException包起来

如果您只是想摆脱它,只需将其包装在try-catch块和catch-QueryException中即可

firstOrNew()
不需要两个参数吗?您提供什么来查询它是
存在的
还是
新的
?我在生成伪模型时遇到了这个问题,每个模型本身都生成了一个伪相关模型。解决方案是生成一次相关模型,并在创建过程中分配给每个模型。
firstOrNew()
不需要两个参数吗?您提供什么来查询它是
存在的
还是
新的
?我在生成伪模型时遇到了这个问题,每个模型本身都生成了一个伪相关模型。解决方案是生成一次相关模型,并在创建过程中将其分配给每个模型。