Laravel中updateOrCreate()和updateOrInsert()之间的区别是什么

时间:2017-06-07 08:18:15

标签: php laravel laravel-5 eloquent

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

1 个答案:

答案 0 :(得分:14)

updateOrCreateEloquent Builder的方法,updateOrInsertQuery 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 = [])