Order Data
Mendaftarkan Kolom Agar Bisa Diurutkan
- Agar kolom pada tabel di halaman index bisa di filter, maka pada Menampilkan Kolom Ke Index harus menset
sortabledengan nilaitrue.BaseSpec::createInstanceFromArray([
'label' => 'No. Surat',
'name' => 'no_surat_pemberitahuan',
'sortable' => true,
]), - Dan untuk mendaftarkan agar bisa di order tinggal ditambahkan pada property
$orderColumnsdi model.protected array $orderColumns = [
'kpt272a_number',
];
Order Data Menggunakan Join
Untuk bisa mengurutkan data yang berelasi bisa menggunakan
orderByPowerJoindengan cara meng-override fungsicustomOrder.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.
kpt630adalah nama relasi yang sudah terdaftar pada model.
Order Data Menggunakan Join dan Raw Query
- Adakala nya kita membutuhkan query yang lebih kompleks untuk mengurutkan data.
- Untuk bisa mengurutkan data yang berelasi dan menggunakan
raw query, bisa dengan cara.$query->orderByPowerJoins(['kpt194a', DB::raw(StringHelper::trimHtmlTagQuery('description'))], $order); - Parameter pertama, berupa array dengan index pertama adalah nama relasi dan yang kedua adalah
raw query. - Parameter kedua, tipe urutan yaitu
ascataudesc.