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.