2016-07-26 84 views
0

考慮下面的代碼,使用的是Postgres + Laravel 5.2:如何使用Laravel雄辯避免「重複鍵值違反唯一約束」?

$post = Post::firstOrNew(['title'=> 'title test']); 
$post->body = 'test body'; 
$post->save(); 

只要多進程工作在相同的數據的原始I得到 Unique violation: 7 ERROR: duplicate key value violates unique constraint..

我試圖用交易的建議在這裏 https://laracasts.com/discuss/channels/general-discussion/how-properly-use-the-lockforupdate-method 但後來我得到了Call to undefined method Illuminate\Database\Query\Builder::save()

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

我怎樣才能解決這個問題

+0

'firstOrNew()'不帶兩個參數嗎?你提供什麼來查詢它是否存在或是否是新的? –

回答

0

只是把它包裝在一個try catch塊並捕獲QueryException如果你只是想擺脫它。

相關問題