Tips
07 вересня 2026
firstWhere() - Пошук елемента за атрибутом
Потрібно знайти перший елемент, що відповідає умові?
firstWhere() виглядає чистіше, ніж filter()->first().
Переваги:
- Один метод замість двох
- Автоматична обробка null
- Підтримує оператори
Оператори:
Такі ж, як у where(): =, !=, >, <, >=, <=
Порада: використовуйте другий параметр для значення за замовчуванням, якщо елемент не знайдено.
3
$users = collect([
['id' => 1, 'name' => 'John', 'age' => 25],
['id' => 2, 'name' => 'Jane', 'age' => 30],
['id' => 3, 'name' => 'Bob', 'age' => 35],
]);
// ПОГАНО: два методи
$user = $users->filter(fn($u) => $u['age'] > 30)->first();
// ДОБРЕ: один метод
$user = $users->firstWhere('age', '>', 30);
// ['id' => 3, 'name' => 'Bob', 'age' => 35]
// Точна відповідність (оператор за замовчуванням - =)
$user = $users->firstWhere('name', 'Jane');
// Із значенням за замовчуванням
$guest = ['name' => 'Guest'];
$user = $users->firstWhere('age', '>', 100) ?? $guest;
// Eloquent-колекції
$featured = Post::all()->firstWhere('featured', true);
// Кілька умов - first із callback
$user = $users->first(
fn($u) => $u['age'] > 30 && $u['name'] !== 'Bob'
);