Tips
16 липня 2026
updateOrCreate() - простий спосіб upsert
Перевіряєте, чи існує запис, а потім оновлюєте або створюєте? Забагато коду.
updateOrCreate() виконує обидві операції за один раз.
Як працює:
- Перший аргумент - умови пошуку
- Другий - дані для оновлення/створення
Магія:
- Якщо запис знайдено - оновлює
- Якщо ні - створює
Порада: Ідеально підходить для інтеграцій з API.
// ПОГАНО: два запити, зайвий код
$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']]
);
}