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
      • 批量分配
        • create 和 firstOrCreate 有哪些区别
    • updateOrCreate
  • seeder

    • seeder
    • seeder2
  • 套件

    • precognition
  • 进阶

    • Cache 缓存
  • 最佳实践

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

    • IDE Helper Generator for Laravel

Eloquent 基本知识

批量分配

create 和 firstOrCreate 有哪些区别

create 和 firstOrCreate 是 Laravel Eloquent ORM 中用于创建新记录的两个不同方法。它们有以下主要区别:

  1. create 方法:
    • 总是创建一个新记录。
    • 如果记录已存在,会创建一个重复的记录。
    • 更快,因为它不需要先查询数据库。
  2. firstOrCreate 方法:
    • 首先尝试查找匹配的记录。
    • 如果找到匹配的记录,返回该记录。
    • 如果没有找到匹配的记录,则创建一个新记录。
    • 可以防止创建重复记录。
    • firstOrCreate 允许您分别指定用于查找的属性和用于创建的属性。
$company = Company::create([
    'name' => '广州勤快货运代理有限公司',
    'suffix_domain' => 'qkcargo',
    // ...其他字段
]);
$company = Company::firstOrCreate(
    ['suffix_domain' => 'qkcargo'],  // 用于查找的条件
    [
        'name' => '广州勤快货运代理有限公司',
        // ...其他字段
    ] // 用于创建的属性
);
Last Updated:
Contributors: BaronYan
Next
updateOrCreate