Eloquent ORM ابزار نگاشت آبجکت-رابطهای لاراول است که کار با رکوردها و رابطههای پایگاه داده را از طریق کلاسهای مدل ممکن میکند. هر مدل معمولاً به یک جدول مرتبط است و متدهایی برای Query، ایجاد و بهروزرسانی داده دارد.
Eloquent از الگوی Active Record پیروی میکند. برای Queryهای پیچیده یا بارهای سنگین، شناخت SQL تولیدشده و بررسی عملکرد پایگاه داده همچنان ضروری است.
رابط Eloquent نوشتن Product::query()->where(...) را آسان میکند، اما در Query پیچیده باید SQL تولیدشده و Execution Plan را بررسی کرد.
نمونه کوتاه
$orders = Order::query()->where("status", "paid")->latest()->get();
در همین واژهنامه، اکتیو رکورد و نگاشت آبجکت-رابطهای از مفاهیم مرتبط هستند.
تاثیر N+1 روی کارایی
اگر ۱۰۰ سفارش را دریافت کنیم و برای هر سفارش رابطه customer جداگانه Query شود، مجموع درخواستهای دیتابیس زیاد میشود. با with("customer") میتوان رابطه را از پیش بارگذاری کرد، ولی انتخاب رابطههای غیرضروری نیز هزینه حافظه و انتقال داده دارد.