Buat Validasi Input Laravel - Dunia Laravel
Seperti
yang kalian tahu kebutuhan data setiap aplikasi itu beda-beda. Beda aplikasi,
beda form, beda data yang diinputin. Malah terkadang walaupun data yang
diinputkan sama, bisa jadi aturan input datanya berbeda. Nah, laravel punya
yang namanya validation buat nanganin ini dengan membuat aturan-aturan data
yang kita inputin.
Table of Contents
- What is Validation?
- Things That Need to be Prepared
- Create Validation
What is Validation?
Validation
atau validasi yang berarti pengujian kebenaran atas sesuatu. Dalam kasus ini
hal yang diuji adalah data yang kita inputin lewat form yang disediakan di
suatu website. Ini di pake buat mencegah adanya data yang aneh, yang mungkin
juga bisa aja menyebabkan bug atau error dalam sistem.
Things That Need to be Prepared
Hal
pertama yang kalian perlukan adalah sebuah form input yang sudah terintegrasi
dengan database. Jadi udah ada controller buat inputnya, dan formnya udah bisa
di pake. Jika kalian perlu contoh atau cara buat input data kalian bisa cek di
artikel CRUD bagian create data. Dari artikel tersebut nanti akan didapatkan
form seperti ini
Create Validation
Jika
kalian udah punya form yang bisa di pake, yang kalian perlukan sekarang Cuma edit
bagian controller dan bagian viewsnya aja. Jadi di controller buat deklarasi
dan jalanin validationnya, dan di views nya itu buat nampilin validationnya
jika ada error.
Kita
kebagian controller. Pertama kalian harus memasukan class validationnya dengan
menggunakan
use Illuminate\Support\Facades\Validator;
Yang
kalian taruh di bagian atas controller. Selanjutnya baru kalian perlu panggil
validationya dan deklarasikan peraturan yang kalian butuhin didalam controller.
Validasi ini kita panggil difungsi store() yang ada di controller kalian.
$validator = Validator::make($request->all(), [
'name' => 'required|max:255',
'email' => 'required|email',
'pass' => 'required|min:8',
]);
if ($validator->fails()) {
return redirect()
->back()
->withErrors($validator)
->withInput();
}
Kalian bisa bandingin
sama form ku (gambarnya bisa diliat di atas). Input yang aku kasih itu Cuma ada
3, yaitu name, email dan password. Jadi aturan yang aku buat itu ada 3 juga.
Dalam kode diatas
terlihat kalo aku ngasih aturan ke input name agar dia harus ada (required),
dan punya panjang maksimal 255 karakter. Pada email aku juga kasih peraturan
harus ada (required), dan formatnya harus format email. Format email yang
dimaksud itu harus ada ‘@’-nya da nada domain-nya seperti ‘.com’. dan yang
terakhir adalah password, dimana aku ngatur agar dia harus ada (required) dan
punya karakter setidaknya jumlahnya 8.
Dan pada baris
selanjutnya terdapat if. Dimana logika yang
diberikan adalah “jika aturan yang kita deklarasikan tadi tidak terpenuhi, maka
jalankan perintah didalam ini”. Dan jika if-nya tereksekusi maka page akan dikembalikan
ke form input bersamaan dengan informasi kesalahan input.
Sekarang kalian perlu
atur bagian view nya, yaitu bagian formnya. Kita buat tambahakan beberapa kode
untuk menangkap informasi kesalahan input dari controller.
Kita ubah input form
yang awalnya
<input type="text" class="form-control" id="name" name="name" placeholder="Your Name">
Menjadi
<input type="text" class="form-control @error('name') is-invalid @enderror" id="name" name="name" placeholder="Your Name">
@error('name')
<div class="alert alert-danger">{{ $message }}</div>
@enderror
Kode diatas merupakan kode yang digunakan untuk mengambil pesan error yang diberikan oleh controller. Yang diubah merupakan semua input formnya. Jadi kalo liat di gambar form yang aku tampilin diatas, artinya aku juga perlu edit bagian input email sama input password.
Hasil validasi nya akan jadi seperti ini
Bentuk validasi diatas
yang menurutku paling sering ditemui di website-website. Tapi ada validasi yang
ditampilkan dalam bentuk list. Kalian bisa memasukan kode dibawah ke dalam
views.
@if ($errors->any())
<div class="alert alert-danger">
<ul>
@foreach ($errors->all() as $error)
<li>{{ $error }}</li>
@endforeach
</ul>
</div>
@endif
Hasil kode diatas akan terlihat seperti ini
Banyak rule validasi
laravel yang bisa kalian liat di dokumentasi larvael.
What’s
Next?
kamingsun
Komentar
Posting Komentar