value() vs first() - економія пам'яті
Потрібна тільки одна колонка з одного рядка? Не треба завантажувати всю модель.
first() створює повну Eloquent модель. value() повертає тільки дані.
Різниця:
first()повертає екземпляр моделі з усіма атрибутамиvalue()повертає одне скалярне значенняpluck()повертає колекцію значень з кількох рядків
Коли що використовувати:
Використовувати value() для однієї колонки, одного рядка.
Використовувати pluck() для однієї колонки, кількох рядків.
Використовувати first() тільки коли потрібні методи моделі.
Порада: На великих таблицях з багатьма колонками value() значно швидший.
// ПОГАНО: Завантажує повну модель з усіма колонками
$email = User::where('id', 1)->first()->email;
// ДОБРЕ: Повертає тільки рядок email
$email = User::where('id', 1)->value('email');
// Декілька рядків, одна колонка
$emails = User::where('active', true)->pluck('email');
// Повертає: Collection ['john@ex.com', 'jane@ex.com']
// Потрібні декілька колонок з кількох рядків?
$users = User::select('id', 'email')->get();
// З ключем за ID
$emails = User::pluck('email', 'id');
// Повертає: [1 => 'john@ex.com', 2 => 'jane@ex.com']