---
title: "updateOrCreate() - простий спосіб upsert"
url: https://laravelukraine.com/blog/updateorcreate-prostii-sposib-upsert
date: 2026-07-16
---

# updateOrCreate() - простий спосіб upsert

Перевіряєте, чи існує запис, а потім оновлюєте або створюєте? Забагато коду.

`updateOrCreate()` виконує обидві операції за один раз.

**Як працює:**

* Перший аргумент - умови пошуку
* Другий - дані для оновлення/створення

**Магія:**

* Якщо запис знайдено - оновлює
* Якщо ні - створює

Порада: Ідеально підходить для інтеграцій з API.

```php
// ПОГАНО: два запити, зайвий код
$user = User::where('email', 'john@example.com')->first();
if ($user) {
  $user->update(['name' => 'John Doe']);
} else {
  User::create([
    'email' => 'john@example.com',
    'name' => 'John Doe'
  ]);
}

// ДОБРЕ: один метод, один запит
User::updateOrCreate(
  ['email' => 'john@example.com'],
  ['name' => 'John Doe', 'verified' => true]
);

// Синхронізація даних з API
$apiUsers = ExternalAPI::getUsers();
foreach ($apiUsers as $apiUser) {
  User::updateOrCreate(
    ['external_id' => $apiUser['id']],
    ['name' => $apiUser['name'], 'email' => $apiUser['email']]
  );
}
```
