nuri60 Öyle olmaz, her satırda iki sorgu çalıştırıyor. Şöyle yapabilirsiniz:
// Henüz sorgu yapılmadı
$ordersQuery = DB::table('orders');
// Burada 1 sorgu yapıldı. Burada bir sınırlama yapmanız gerekebilir.
$orderIds = $ordersQuery->pluck('id');
// Burada 1 sorgu yapıldı
$orderDetails = DB::table('order_details')
->whereIn('order_id', $orderIds)
->get();
// Burada 1 sorgu yapıldı
return DataTables::of($ordersQuery)
->editColumn('order_details', function($order) use ($orderDetails) {
// Artık Collection olduğu için burada sorgu yapılmadı
$detail = $orderDetails->firstWhere('order_id', $order->id);
return $detail->...
})
->toJson();
Burada Eloquent'in eager loading özelliğini taklit ederek toplamda 3 sorgu ile halletmiş olduk. Datatable kullanmadığım için ince kısımlarını bilmiyorum. Daha da uygun hale getirilebilir belki.