Laravel 中的 updateOrCreate() 和 updateOrInsert() 有什么区别
这两种方法似乎都会创建新记录(如果不存在),或者使用提供的数据更新记录。两者之间有什么区别?
这两种方法似乎都会创建新记录(如果不存在),或者使用提供的数据更新记录。两者之间有什么区别?
updateOrCreate
是 Eloquent Builder 的方法,也是 Query Builder 的方法。updateOrInsert
updateOrCreate
返回模型,而返回布尔值updateOrInsert
来自Laravel代码的签名:
更新或创建
/**
* 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 = [])
更新或插入
/**
* 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 = [])