Laravel: Mengurutkan Data Berdasarkan Jumlah Relasi

Misal kita punya tampilan laporan seperti berikut:

idOrderJumlah Barang
1Secret Order3
2Another 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

Show Comments