Skip to main content

Order Data

Mendaftarkan Kolom Agar Bisa Diurutkan

  1. Agar kolom pada tabel di halaman index bisa di filter, maka pada Menampilkan Kolom Ke Index harus menset sortable dengan nilai true.
     BaseSpec::createInstanceFromArray([
    'label' => 'No. Surat',
    'name' => 'no_surat_pemberitahuan',
    'sortable' => true,
    ]),
  2. Dan untuk mendaftarkan agar bisa di order tinggal ditambahkan pada property $orderColumns di model.
     protected array $orderColumns = [
    'kpt272a_number',
    ];

Order Data Menggunakan Join

  1. Untuk bisa mengurutkan data yang berelasi bisa menggunakan orderByPowerJoin dengan cara meng-override fungsi customOrder.

     protected function customSort(Builder $query, Request $request, Collection $tasks = null): Builder
    {
    $sort = $request->input('sort');
    $type = $request->input('asc') === 'true' ? 'asc' : 'desc';

    if ($sort === 'kpt630_agencyname') {
    $query->orderByPowerJoins('kpt630.agency_name', $type);
    }

    return $query;
    }

    ⚠️ Catatan. kpt630 adalah nama relasi yang sudah terdaftar pada model.

Order Data Menggunakan Join dan Raw Query

  1. Adakala nya kita membutuhkan query yang lebih kompleks untuk mengurutkan data.
  2. Untuk bisa mengurutkan data yang berelasi dan menggunakan raw query, bisa dengan cara.
    $query->orderByPowerJoins(['kpt194a', DB::raw(StringHelper::trimHtmlTagQuery('description'))], $order);
  3. Parameter pertama, berupa array dengan index pertama adalah nama relasi dan yang kedua adalah raw query.
  4. Parameter kedua, tipe urutan yaitu asc atau desc.