如果不存在,两种方法似乎都会创建新记录,或者使用提供的数据更新记录。这两者之间有什么区别?
答案 0 :(得分:14)
updateOrCreate
是Eloquent Builder的方法,updateOrInsert
是Query Builder的方法。
updateOrCreate
返回模型,而updateOrInsert
返回布尔值
Laravel代码签名:
<强> updateOrCreate 强>
/**
* Create or update a record matching the attributes, and fill it with values.
*
* @param array $attributes
* @param array $values
* @return \Illuminate\Database\Eloquent\Model|static
*/
public function updateOrCreate(array $attributes, array $values = [])
<强> updateOrInsert 强>
/**
* Insert or update a record matching the attributes, and fill it with values.
*
* @param array $attributes
* @param array $values
* @return bool
*/
public function updateOrInsert(array $attributes, array $values = [])