---
title: "existsOr() та doesntExistOr() - чисті перевірки існування"
url: https://laravelukraine.com/blog/existsor-ta-doesntexistor-cisti-perevirki-isnuvannia
author: "Олексій Бабінцев"
date: 2026-08-06
---

# existsOr() та doesntExistOr() - чисті перевірки існування

Спочатку перевіряєте `exists()`, потім робите дію? Виходить громіздкий if/else.

`existsOr()` виконає callback, якщо запис **не існує**.
`doesntExistOr()` - якщо існує.

**Де корисно:**

* Кинути виняток
* Створити запис
* Залогувати подію
* Надіслати нотифікацію

```php
// ПОГАНО
if (!User::where('email', $email)->exists()) {
  return response()->json(['error' => 'User not found'], 404);
}

// ДОБРЕ
User::where('email', $email)
  ->existsOr(function () {
    throw new UserNotFoundException('User not found');
  });

// Створити, якщо немає
Post::where('slug', $slug)
  ->existsOr(function () use ($slug) {
    Post::create(['slug' => $slug, 'title' => 'Draft']);
  });

// Лог при існуванні
Order::where('id', $orderId)
  ->where('status', 'pending')
  ->doesntExistOr(function () use ($orderId) {
    Log::warning("Non-pending order: {$orderId}");
  });
```
