How to Create Dynamic Validation Input Lumen

Chalid Ade Rahman
4 min readOct 18, 2019

--

Photo by Parul Gupta on Unsplash

Beberapa hari lalu, saya mencoba membuat sebuah dynamic validation input dengan menggunakan Lumen. Hal ini menurut saya unik karena biasanya validasi input dibuat tiap kali ada form baru untuk input ke database. Hal ini tentu membuang — buang waktu dalam proses pengembangan aplikasi. Sehingga saya berfikir untuk membuat sebuah fungsi untuk menjadikan validasi input ini dapat bersifat dinamis. Ketika kita buat sebuah form baru, kita tidak perlu lagi membuat validasinya kita cukup panggil satu function. Sebelum memulai pastikan requirement dasar ini Anda penuhi terlebih dahulu.

Requirement Dasar

  1. Install Composser
  2. Install Lumen
  3. Install Xampp
  4. Baca untuk persiapan : Passing Parameter JSON to Another Function LUMEN for Universal API

Saya asumsikan anda sudah memenuhi requirement dasar diatas. Poin nomor 4 penting juga untuk setidaknya Anda memahami bagaimana proses melemparkan input ke sebuah fungsi baru. Jika Anda sudah memahami konsepnya, kita bisa mulai membuat Dynamic Validation Lumen dengan langkah — langkah seperti berikut :

Langkah — Langkah :

  1. Memahami Konsep
  2. Membuat Tabel Validasi
  3. Membuat Fungsi Validasi pada Controller
  4. Trial and Error

#1 Memahami Konsep Dynamic Validation

Untuk membuat sebuah validasi yang bersifat dinamis. Kita perlu memahami konsepnya terlebih dahulu. Mari kita lihat cara membuat sebuah validasi yang biasanya kita buat sesuai dokumentasi lumen.

$this->validate($request, [
'name' => 'required',
'email' => 'required|email|unique:users'

]);

Script diatas adalah code dasar dalam pembuatan validasi di lumen/laravel. Code yang wajib dipenuhi adalah sebagai berikut :

$this->validate($request, []);

Sedangkan yang ada di dalam “[]” atau yang saya beri bold adalah sebuah Array Of Object. Artinya kita bisa mengisi array tersebut secara dinamis dengan menyimpan nilainya ke dalam sebuah tabel. Masih bingung, mari kita lanjutkan terlebih dahulu.

#2 Membuat Tabel Validasi

Seperti yang sudah dibahas sebelumnya, bahwa kita akan menyimpan field input kedalam sebuah tabel kemudian data pada tabel tersebut yang kita gunakan sebagai parameter validasi. Buatlah tabel validasi dengan field kurang lebih seperti berikut :

Pada gambar diatas, kita sudah membuat sebuah tabel validasi dengan nama kolom no, nama_tbl, field, mandatori, dan type. Adapun fungsi dari masing — masing kolom tersebut adalah sebagai berikut :

Keterangan :

  1. no → hanya digunakan primary key
  2. nama_tbl → digunakan untuk mendapatkan nama tabel yang akan kita gunakan untuk proses save data
  3. field → digunakan untuk menyimpan parameter input yang kita gunakan dalam validasi
  4. mandatori → adalah aturan validasi yang kita inginkan
  5. type → digunakan untuk mendeklarasi tipe data (optional)

Dengan data seperti diatas, artinya kita dapat mengklasifikasikan data berdasarkan nama tabel kemudian kita dapat mengambil datanya dan kita jadikan format sesuai format validasi lumen. Olah data output dari table validasi menjadi array of object seperti berikut :

'name'  => 'required',
'email' => 'required|email|unique:users'

Apakah Anda sudah mendapatkan pointnya ? Jika sudah, mari kita lanjutkan yaitu pembuatan script-nya.

#3 Membuat Fungsi Validasi pada Controller

Script validasi membutuhkan parameter $request sehingga kita harus kirim parameter tersebut ke fungsi validasi. Perhatikan baris code berikut :

Get the point ? Jadi kita buat sebuah fungsi baru untuk proses validasi. Kita inputkan tabelnya sebagai parameter. Kemudian kita get datanya dan buat sebagai parameter validasi. Dengan begitu, jika ada form baru kita hanya perlu mendaftarkannya pada tabel validasi saja. Tidak perlu membuat script validasi baru.

#4 Trial and Error

Mari kita coba dengan tabel movie, dengan konfigurasi database seperti diatas harusnya apabila field nama, tanggal_masuk, dan tanggal_keluar tidak diisi maka akan muncul pesan error.

Pada gambar diatas terlihat field nama, tanggal_masuk, dan tanggal_keluar saya biarkan kosong sehingga muncul pesan kesalahan seperti itu. Apabila saya isi nama saja misalnya. maka akan muncul tampilan seperti berikut :

Maka pesan error nama juga hilang. Kita tes juga apabila tanggal kita isi salah harusnya akan muncul error juga seperti berikut :

Berhasil, selanjutnya kita cek apakah benar ini sudah dinamis. Kebetulan pada tabel validasi kita juga sudah menginputkan data validasi untuk tabel kargo, mari kita rubah tabelnya ke kargo dan cek validasinya.

Cool kita berhasil, selanjutnya apabila kita membuat form baru kita hanya perlu panggil fungsi validasinya dan ya kita berhasil membuat Dynamic Validation.

Jika Anda memiliki pertanyaan atau error ketika mencoba, langsung comment dibawah mari kita solve bersama.

Baca Juga

  1. How to Input Raw JSON Response to Lumen in Postman
  2. Authentication Token for Lumen with php-jwt
  3. Passing Parameter JSON to Another Function LUMEN for Universal API

--

--

Chalid Ade Rahman
Chalid Ade Rahman

Written by Chalid Ade Rahman

PHP Programmer | PT Electronic Data Interchange Indonesia | Question : chalidade@gmail.com

No responses yet