Laravel: Mengurutkan Data Berdasarkan Jumlah Relasi
Misal kita punya tampilan laporan seperti berikut:
id | Order | Jumlah Barang |
1 | Secret Order | 3 |
2 | Another order | 2 |
Sederhananya, skema tabel yang dibuat akan seperti berikut:
Orders:
- id
- name
Items:
- id
- order_id
- title
Di model yang dibuat relasinya seperti berikut
// Order.php public function item() { return $this->hasMany('App\Item','order_id'); } // Item.php public function order() { return $this->belongsTo('App\Order','order_id'); }
Permasalahannya bagaimana kita ingin mengurutkan berdasarkan jumlah data relasi? Di laravel ternyata mudah.
Order::with('item')->orderBy('item_count','asc')->get();
Sudah itu aja.
Referensi:
https://laracasts.com/discuss/channels/eloquent/order-by-relationship-count-1?page=1