Laravel updateOrInsert / updateOrCreate

閱讀時間約 2 分鐘

實務上有可能會遇到資料若存在就更新,不存在就塞進去,Laravel提供了好用的方法 updateOrInsert:

表示用A, B, C三個欄位當作條件,如果值存在就更新D欄位的資料,如果不存在就insert一筆新的。

  • 與updateOrCreate差別是,updateOrCreate會自動維護created_at, updated_at欄位。


後記

如果有多筆資料要update or insert,上述寫法要foreach,這時可以改用upsert,更有效率:

XXX::upsert($data, ['aa_id', 'bb_id'], ['quantity']);
  • 第二個參數放唯一識別key,文件指出要是primary or unique欄位才行,而我這邊是將aa_id與bb_id這兩個欄位group一起設為primary key。
  • 最後一個參數則是當key存在時,要更新的欄位。

本筆記參考:
1.
https://www.bestinterviewquestion.com/question/how-to-use-updateorinsert-method-in-laravel-query-asogm3909ae
2.
https://blog.csdn.net/u010324331/article/details/82698211
3.
https://laravel.com/docs/8.x/queries#upserts

即將進入廣告,捲動後可繼續閱讀
為什麼會看到廣告
21會員
161內容數
留言0
查看全部
發表第一個留言支持創作者!
Vic Lin的沙龍 的其他內容
將 Cookie SameSite屬性設定為None Secure。 config/session.php: 'secure' => env('SESSION_SECURE_COOKIE', true), 'same_site' => 'none', 本筆記參考: 1. https://ithel
原本如果只用手機登入,可以這樣寫: E 如果允許user透過手機或email登入,可以改成這樣: E 原理是判斷輸入的是手機或信箱,決定要用cell/password 還是 email/password來驗證是否登入成功! 本筆記參考: 1. https://stackoverflow.com/q
安裝Facebook PHP SDK: $ composer require facebook/graph-sdk Sample code: E 本筆記參考: 1. https://github.com/facebookarchive/php-graph-sdk
Laravel設定 1. 安裝Socialite: 在之前的google第三方登入文章有提到,不再贅述。 2. .env新增: FB_CLIENT_ID=xxx FB_CLIENT_SECRET=xxx FB_REDIRECT=http://yourdomain/facebook/authCall
Laravel中透過SMTP寄信,出現類似這種錯誤訊息: Failed to authenticate on SMTP server with username \"[email protected]\" using 3 possible authenticators. Authenticator LOGI
從瀏覽器console看到類似這個error:  ..... has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource 表示遇到CORS的
將 Cookie SameSite屬性設定為None Secure。 config/session.php: 'secure' => env('SESSION_SECURE_COOKIE', true), 'same_site' => 'none', 本筆記參考: 1. https://ithel
原本如果只用手機登入,可以這樣寫: E 如果允許user透過手機或email登入,可以改成這樣: E 原理是判斷輸入的是手機或信箱,決定要用cell/password 還是 email/password來驗證是否登入成功! 本筆記參考: 1. https://stackoverflow.com/q
安裝Facebook PHP SDK: $ composer require facebook/graph-sdk Sample code: E 本筆記參考: 1. https://github.com/facebookarchive/php-graph-sdk
Laravel設定 1. 安裝Socialite: 在之前的google第三方登入文章有提到,不再贅述。 2. .env新增: FB_CLIENT_ID=xxx FB_CLIENT_SECRET=xxx FB_REDIRECT=http://yourdomain/facebook/authCall
Laravel中透過SMTP寄信,出現類似這種錯誤訊息: Failed to authenticate on SMTP server with username \"[email protected]\" using 3 possible authenticators. Authenticator LOGI
從瀏覽器console看到類似這個error:  ..... has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource 表示遇到CORS的
你可能也想看
Google News 追蹤
Thumbnail
接下來第二部分我們持續討論美國總統大選如何佈局, 以及選前一週到年底的操作策略建議 分析兩位候選人政策利多/ 利空的板塊和股票
Thumbnail
🤔為什麼團長的能力是死亡筆記本? 🤔為什麼像是死亡筆記本呢? 🤨作者巧思-讓妮翁死亡合理的幾個伏筆
Thumbnail
接下來第二部分我們持續討論美國總統大選如何佈局, 以及選前一週到年底的操作策略建議 分析兩位候選人政策利多/ 利空的板塊和股票
Thumbnail
🤔為什麼團長的能力是死亡筆記本? 🤔為什麼像是死亡筆記本呢? 🤨作者巧思-讓妮翁死亡合理的幾個伏筆