VuePressVuePress
首页
  • 基础
  • UI
  • JavaScript
  • CSS
  • postcss
  • Vue3
  • Vue的设计与实现
  • 前端常用插件
  • PHP
  • Laravel
  • Linux
  • 线性代数
Category
AI
jiyun
Timeline
首页
  • 基础
  • UI
  • JavaScript
  • CSS
  • postcss
  • Vue3
  • Vue的设计与实现
  • 前端常用插件
  • PHP
  • Laravel
  • Linux
  • 线性代数
Category
AI
jiyun
Timeline
  • 基础知识

    • 表单验证
    • 限流1
  • 请求

    • request
  • 认证

    • auth
  • 验证

    • fail
  • migrations

    • migration
  • eloquent

    • eloquent
    • updateOrCreate
      • 基本语法
      • 工作原理
      • 返回值
      • 注意事项
  • seeder

    • seeder
    • seeder2
  • 套件

    • precognition
  • 进阶

    • Cache 缓存
  • 最佳实践

    • CRUD 最佳实践
    • 将用户定位到他的前缀域名
    • 服务类仓储类查询类
    • 接口和实现
    • laravel 中 trait 引导机制
    • 使用阿里云oss上传图片
  • plugins

    • IDE Helper Generator for Laravel

updateOrCreate 是Laravel Eloquent ORM提供的一个非常有用的方法。

这个方法结合了更新和创建操作,使得在不确定记录是否存在的情况下更新或创建记录变得非常简单。

以下是 updateOrCreate 方法的基本用法和工作原理:

基本语法

Model::updateOrCreate(
    [/* 用于查找的条件 */],
    [/* 需要更新或创建的数据 */]
);

工作原理

  1. 首先,updateOrCreate 方法会根据第一个数组参数中的条件在数据库中查找记录。
  2. 如果找到匹配的记录,它会使用第二个数组参数中的数据更新这条记录。
  3. 如果没有找到匹配的记录,它会创建一个新记录,同时使用两个数组参数中的所有数据。

返回值

updateOrCreate 方法会返回一个模型实例。具体来说:

  • 返回值类型:返回的是一个 Eloquent 模型实例
  • 返回内容:
    • 如果记录被更新:返回更新后的已存在记录的模型实例。
    • 如果新记录被创建:返回新创建的记录的模型实例。

注意事项

  • 第一个数组参数用于确定唯一性,通常应该包含主键或唯一索引字段
  • 第二个数组参数包含要更新或插入的数据。如果是更新操作,只有这个数组中的字段会被更新
Last Updated:
Contributors: BaronYan
Prev
eloquent