Eloquent - це реалізація Laravel шаблону Active Record, який має всі свої сильні та слабкі сторони.
Активний запис є хорошим рішенням для обробки однієї сутності в CRUD-манері - тобто створити нову сутність із заповненими властивостями, а потім зберегти її в базі даних, завантажити запис із бази даних або видалити.
Ви отримаєте багато користі від таких красномовних функцій, як брудна перевірка (надсилати SQL UPDATE лише для полів, які були змінені), події моделі (наприклад, надсилати адміністративні сповіщення або оновлювати лічильники статистики, коли хтось створив новий обліковий запис), риси ( позначки часу, м'які видалення, ваші власні риси) нетерпляче / ледаче завантаження тощо. Ви також можете застосувати керований доменом шаблон та реалізувати деякі елементи бізнес-логіки у своїх об'єктах Active Record, наприклад, перевірку, управління відносинами, розрахунки тощо.
Але, як ви вже знаєте, Active Record має певну ціну продуктивності.
Коли ви обробляєте один запис або кілька записів, ні про що турбуватися. Але для випадків, коли ви читаєте багато записів (наприклад, для сіток даних, для звітів, для пакетної обробки тощо), простіші DB
методи Laravel є кращим підходом.
Для наших додатків на базі Laravel ми використовуємо обидва підходи, як ми вважаємо доречними. Ми використовуємо форми Eraquent для інтерфейсу користувача Laravel для обробки одного запису та використовуємо DB
методи (підкріплені поданнями SQL з додатковими налаштуваннями продуктивності, специфічні для механізму бази даних) для отримання даних для таблиць інтерфейсу, завдань експорту тощо. Це також добре працює з RESTful API - Eloquent for GET , ВСТАНОВИТИ, РОЗМІСТИТИ, ВИДАЛИТИ за допомогою ключа та DB
для ОТРИМАТИ без ключа, але з фільтрами та сортуванням та підкачуванням.