Virus Corona (Covid-19)

Dapatkan Informasi terbaru

Tutorial Order By Relationship Sum Column di Laravel

Jackma 01 May 2020 10,320

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" => "test@gmail.com"
  "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" => "savanihd@gmail.com"
  "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.

Tags

laravel laravel 5 laravel 6 laravel eloquent

Related Stories


Latest Stories


Close Ads X