andriajah Thu Apr 2020 1 year ago

Tutorial Order By Relationship Sum Column di Laravel

Jika Anda mencari cara laravel order jumlah dengan relasi maka saya akan membantu Anda cara membuat jumlah model relationship dan dalam order melalui laravel 6 dan aplikasi laravel 5. Anda dapat menjumlahkan kolom relasi dan orderby menggunakan subquery di project laravel 6 dan laravel 5.

Laravel menyediakan konsep relationship dan itu benar-benar sangat berguna. Jika Anda menggunakan relationship di aplikasi laravel Anda, maka itu membuat segalanya sangat mudah dan Anda tidak perlu menulis permintaan basis data yang panjang. tetapi beberapa hal seperti menggunakan jumlah, menghitung fungsi dll Anda tidak dapat menggunakan langsung pada model hubungan untuk pesanan oleh. Jika Anda perlu order pada jumlah relasi di laravel maka saya akan memberikan Anda contoh di bawah ini yang akan membantu Anda.

Dalam contoh di bawah ini, saya membuat tabel "customers" dan "customer_balances" dan saya mengelola setiap saldo customers. Saya ingin orderby customer dengan saldo tertinggi yang akan ditampilkan di urutan teratas. Jadi Anda dapat melihat di bawah laravel db query untuk melakukan hal ini dengan laravel 6 dan laravel 5.

Laravel 6:

$customers = Customer::addSelect(['balance' => CustomerBalance::selectRaw('sum(amount) as total')
         ->whereColumn('customer_id', 'customers.id')
         ->groupBy('customer_id')
     ])
     ->orderBy('balance', 'DESC')
     ->get()
     ->toArray();
   
dd($customers);

Laravel 5:

$customers = User::select("*", 
                   \DB::raw('(SELECT SUM(amount) FROM customer_balances WHERE customer_balances.customer_id = customers.id) as balance'))
            ->orderBy('balance', 'DESC')
            ->get()
            ->toArray();
   
dd($customers);

Output:

array:2 [▼
0 => array:7 [▼
  "id" => 2
  "name" => "Paresh"
  "email" => "[email protected]"
  "email_verified_at" => null
  "created_at" => "2019-09-14 03:10:38"
  "updated_at" => "2019-09-14 03:10:38"
  "balance" => "50"
  ]

1 => array:7 [▼
  "id" => 1
  "name" => "Hardik"
  "email" => "[email protected]"
  "email_verified_at" => null
  "created_at" => "2019-09-14 03:10:38"
  "updated_at" => "2019-09-14 03:10:38"
  "balance" => "30"
]
]

Saya harap ini bisa membantu Anda.

laravel eloquent laravel 6 laravel 5 laravel