Laravel 中的 updateOrCreate() 和 updateOrInsert() 有什么区别

2022-08-30 16:06:17

这两种方法似乎都会创建新记录(如果不存在),或者使用提供的数据更新记录。两者之间有什么区别?


答案 1

updateOrCreateEloquent 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 = [])

答案 2

推荐