Skip to main content

Fitur Search List pada Alurkerja Lowcode

Melanjutkan dari tulisan sebelumnya, tentang Get List pada Alurkerja Lowcode, sekarang akan dijelaskan tentang bagaimana cara mem-search list data pada Alurkerja Lowcode.

Persiapan

Siapkan project laravel yang telah dipasang Alurkerja Lowcode, jika belum tahu caranya, dapat dilihat disini.

Buat api CRUD dengan command laravolt, jika belum tahu caranya, dapat dilihat disini.

Pada tulisan ini menggunakan module name article dan model name article.

Siapkan beberapa row data pada database anda. Misalkan seperti ini :

picture 1

SearchableColumns

Untuk bagian ini, silahkan anda baca dulu terkait AutoMode pada model Alurkerja Lowcode. Karena saat ini pada app/Models/Article menerapkan BLACKLIST, maka anda dapat meng-override variable searchableColumns untuk menentukan atribut yang tidak ingin disertakan dalam search (tidak akan di-search). Anda dapat menambahkan code sebagai berikut :

public AutoMode $searchMode = AutoMode::BLACKLIST;

protected array $searchableColumns = [
'name'
];

Dengan ini, maka atribut name tidak disertakan dalam search.

Sebelum penambahan searchableColumns (atribut name disertakan dalam search) :

picture 2

Sesudah penambahan searchableColumns (atribut name tidak disertakan dalam search) :

picture 3

Pada file service app/Services/article/ArticleService.php anda bisa menerapkan custom query untuk search ini. Secara default query yang akan diterapkan pada search adalah like, akan mencari ke semua kolom (yang diizinkan) pada table model tersebut.

Anda bisa melakukan kustomisasi query search dengan meng-override fungsi searchQuery. Pertama-tama pastikan atribut name di-blacklist dari searchableColumns, lalu silahkan anda menambahkan code berikut :

protected function searchQuery(Builder $query, Request $request): Builder
{
$query = parent::searchQuery($query, $request);

$searchValue = $request->input('search');

//custom query search pada name
$query->orWhere('name', 'like', '%' . $searchValue . '%');

return $query;
}

Maka, kolom name telah didaftarkan pada search, walaupun pada model telah ter-blacklist.

picture 4