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

Dan*_*iel 13 php laravel eloquent laravel-5

如果不存在,这两种方法似乎都会创建新记录,或者使用提供的数据更新记录

Kys*_*lik 16

updateOrCreate是的方法锋生成器updateOrInsert是的方法查询生成器.

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 = [])
Run Code Online (Sandbox Code Playgroud)

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 = [])
Run Code Online (Sandbox Code Playgroud)