laravel中UpdateorCreate和UpdateorInsert兩種方法類似,都是執行查詢后存在即更新,不存在即插入的效果。
updateOrCreate 方法會通過給定的鍵 / 值對來匹配數據庫中的數據。如果在數據庫中找不到模型,則將插入一條記錄,其中包含第一個參數的屬性以及可選的第二個參數的屬性。
updateOrInsert 方法將首先嘗試使用第一個參數的鍵和值對來查找匹配的數據庫記錄。 如果記錄存在,則使用第二個參數中的值去更新記錄。 如果找不到記錄,將插入一個新記錄,新增的數據是兩個數組的集合。
也就是說UpdateorCreate不適合用主鍵id查詢,如果id不存在的話會將不存在的id值(可能為0)插入數據表,勢必報錯。