Колекції Eloquent - це більше, ніж масиви
Eloquent повертає Collections, а не масиви.
Помилка - одразу викликати toArray() і працювати як з масивом.
Переваги колекцій:
- Ланцюжки операцій
- Зручні методи (
map,filter,groupBy,pluck...) - Більш виразний код
Порада: тримайте дані в Collection якомога довше.
$users = User::all(); // Collection
// ПОГАНО
foreach ($users->toArray() as $user) {
echo $user['name'];
}
// ДОБРЕ
$users->each(function ($user) {
echo $user->name;
});
// Фільтрація й трансформація
$activeAdmins = $users
->where('active', true)
->where('is_admin', true)
->pluck('email');
// Групування
$byRole = $users->groupBy('role');
// Пара "id => name"
$names = $users->pluck('name', 'id');
// Перевірка
$hasAdmin = $users->contains('is_admin', true);
$hasAdult = $users->contains(fn($user) => $user->age > 18);