---
title: "exists() vs count() - розумна перевірка"
url: https://laravelukraine.com/blog/exists-vs-count-rozumna-perevirka
date: 2026-03-31
---

# exists() vs count() - розумна перевірка

Перевірка чи користувач має пости? Використання `$user->posts->count() > 0` завантажує всі пости.

`exists()` зупиняється на першому збігу. Набагато швидше.

**Різниця:**

- `count()` підраховує всі записи
- `exists()` зупиняється коли знаходить перший

**Вплив на продуктивність:**

З 10,000 постів - `count()` завантажує всі, `exists()` знаходить один і зупиняється.

Порада: Використання `exists()` для булевих перевірок, `count()` тільки коли потрібне фактичне число.

```php
// ПОГАНО: Завантажує всі пости, рахує їх
if ($user->posts->count() > 0) {
    echo "Користувач має пости";
}

// ДОБРЕ: Зупиняється на першому пості
if ($user->posts()->exists()) {
    echo "Користувач має пости";
}

// Перевірка чи зв'язок порожній
if ($user->posts()->doesntExist()) {
    echo "Пости не знайдено";
}

// Рівень запиту
if (Post::where('published', true)->exists()) {
    // Принаймні один опублікований пост існує
}

// Коли справді потрібна кількість
$postCount = $user->posts()->count();
echo "Користувач має {$postCount} постів";

// Перевірка порожнього на завантаженому зв'язку
if ($user->posts->isEmpty()) {
    // Вже завантажено, без додаткових запитів
}
```
