| Prime Time

Laravel #18 : Membuat Form Validasi Pada Laravel

Membuat Form Validasi Pada Laravel

Secara default laravel telah menyediakan sebuah fungsi untuk membuat proses validasi form. yaitu kita bisa menggunakan fungsi validate().

Pada tutorial ini kita akan membuat contoh cara membuat form validasi pada laravel dengan sangat mudah.

Membuat Form Validasi Pada Laravel

Saya rekomendasikan kepada teman-teman agar membaca tutorial sebelumnya terlebih dulu yaitu:

Tutorial Laravel #5 : Request Data Pada Laravel

Agar lebih mudah dan paham tentang penjelasan cara membuat form validasi laravel ini.

Seperti biasa pertama kita akan membuat 2 buah route untuk membuat form inputan, dan route yang 1 laginya untuk membuat proses validasi dari form inputan yang dikirim.

belajar_laravel/routes/web.php

Di sini kita membuat 2 buah route. yaitu route get. dengan url โ€˜inputโ€™ yang akan mengakses method input pada controller MalasngodingController. dan route yang 1 nya lagi kita buat route post. dengan url โ€˜prosesโ€™ yang akan memproses method atau function proses pada controller MalasngodingController.

Sampai di sini  saya rasa teman-teman sudah paham karena kita telah mempelajari cara membuat route ini pada tutorial sebelumnya di www.malasngoding.com.

Selanjutnya kita buat controller โ€˜MalasngodingControllerโ€™. sesuai dengan yang sudah kita buat pada route.

Untuk membuat controller pada laravel, kita bisa membuatnya secara manual dalam folder App/Http/controllers, atau membuat controller dengan php artisan melalui terminal atau cmd.

cara membuat controller pada laravel

cara membuat controller pada laravel

Baca lagi : Cara Membuat Controller Pada Laravel

Setelah selesai membuat controller, sekarang kita buat 2 buah method, sesuai dengan yang telah kita buat pada route sebelumnya.

yaitu method input dan method proses.

Buka MalasngodingController.php nya, dan tulis syntax berikut.

belajar_laravel/app/Http/controllers/MalasngodingController.php

Pada method input() kita membuat sebuah view yang menampilkan form penginputan sederhana. dimana pada form tersebut akan kita arahkan pemproses nya pada method proses() menggunakan method post. seperti yang telah kita definisikan pada route.

Akan saya jelaskan lengkapnya setelah kita membuat view. pada method input() kita menampilkan view input.blade.php.

BACA : Cara Membuat View Pada Laravel

belajar_laravel/resources/views/input.blade.php

Seperti yang teman-teman lihat pada form di atas,

pada form ini kita mengarahkan ke route โ€˜/prosesโ€™ dengan method post. sebelumnya kita juga sudah belajar cara membuat form seperti ini.

perhatikan pada value nya masing-masing. ada fitur keren dari laravel. yaitu fungsi old(). fungsi ini berguna untuk menampilkan data yang sebelumnya di input.

Jadi jika ada validasi error, maka data yang di isi pada form tidak hilang, tapi tetap masih ditampilkan. karena tentu akan sangat tidak efektif jika user harus menginput data berulang-ulang jika ada validasi yang salah pada penginputan.

Oke ya, sampai di sini saya yakin teman-teman sudah paham.

Kita lanjut membahas method proses().

pada method ini kita melakukan validasi form dengan fungsi validate().

Pertama kita tangkap data-data yang dikirim ke method ini ke dalam variabel $request. kemudian kita isi variabel $request ini ke dalam parameter pertama fungsi validate(). baru kemudian kita buat pengaturan validasi nya masing-masing.

Pada contoh form validasi laravel sederhana ini kita membuat pengaturan โ€˜requiredโ€™ pada form nama, pekerjaan dan usia. yang mana artinya form nama, pekerjaan dan usia ini wajib untuk di isi (tidak boleh kosong).

kemudian pada form nama, kita buat juga validasi jumlah minimal karakter yang di input. dan jumlah maksimal. di sini kita menetapkan form nama minimal harus 5 karakter (min:5), dan maksimal 20 karakter (max:20).

Jika validasi berhasil, atau jika yang di input sesuai dengan pengaturan yang sudah kita tetapkan dalam fungsi validate() tadi, maka kita passing data yang di input oleh user ke view proses.blade.php.

belajar_laravel/resources/proses.blade.php

Pada view proses.blade.php ini kita tampilkan data-data yang dikirim dari method proses() tadi.

Cara menampilkan nya sama seperti biasa

Baca : Tutorial Cara membuat CRUD Dengan Laravel

Oke selesai teman-teman, sebelumnya coba perhatikan lagi pada view input.blade.php.

Di sana kita juga sudah membuat pengecekan jika ada error dari validasi form nya, maka kita tampilkan errornya secara keseluruhan dan berurut.

jika jumlah error lebih besar dari 0 (ada), maka tampilkan semua error dengan menggunakan fungsi foreach().

Coba kita lihat hasilnya.

Jalankan project laravel kita.

dan akses localhost:8000/input

membuat form validasi pada laravel

membuat form validasi pada laravel

di sini saya mencoba mengisi data yang kurang sesuai, karena saya mengiri 4 karakter pada nama, yang seharusnya harus 5 karakter minimal. klik proses maka validasi di jalankan. error yang tampil sesuai dengan yang diinput dan sesuai dengan pengaturan validasi yang sudah kita buat pada fungsi validate(). termasuk jika ada form yang yang tidak diisi.

membuat form validasi dengan laravel

membuat form validasi dengan laravel

Oke sekarang coba kita isi dengan data yang sesuai dan klik proses lagi.

form validation laravel

form validation laravel

Oke selesai teman-teman, sangat mudah kan.

Teman-teman bisa menyesuaikan dengan kebutuhan. jika teman-teman ingin mengolah data yang diinput, misalnya teman-teman ingin menginput data nya ke database, teman-teman bisa membuat fungsi nya setelah fungsi validate().

Mengubah Pesan Error Validasi Laravel

Kita juga bisa custom pesan error yang ditampilkan.

caranya buat variabel dan isi array seperti berikut di dalamnya. dan nama variabel nya isikan ke parameter ke tiga dalam fungsi validate(). seperti contoh berikut.

Pada contoh ini kita mengubah validasi required pesan errornya menjadi โ€œnama_atributnya wajib diisi cuy!!!โ€, dan seterusnya. silahkan lihat hasilnya.

mengubah pesan error form validasi laravel

mengubah pesan error form validasi laravel

Validasi Form Pada Laravel

Berikut ini beberapa validasi yang paling sering dibutuhkan.

required membuat form wajib isi
min:10 membuat minimal karakter yang diinput
max:10 membuat maksimal karakter yang boleh diinput
alpha hanya boleh menginput huruf
numeric hanya boleh menginput angka
alpha_num hanya boleh menginput angka dan huruf ( !@#$%%^&* dan lain-lain tidak diperbolehkan )
bail berhenti menjalankan validasi selanjutnya jika validasi sebelumnya gagal (error)
email hanya boleh menginput email

Selengkapnya bisa teman-teman lihat di sini tentang konfirmasi yang bisa kita buat.

note :

jika teman-teman ingin membuat validasi password. atau misalnya teman-teman ingin data yang diisi pada 2 buah form sama, teman-teman bisa menggunakan โ€˜confirmationโ€™, misalnya ada 2 buah form, yaitu form password dan form konfirmasi password. dimana maksudnya agar yang diisi pada form password sama dengan yang di isi pada form konfirmasi password,

kita bisa menggunakan โ€˜password_confirmationโ€™ pada validasi form konfirmasi password (sesuai dengan nama form sebelumnya).

Jika nama form password adalah nama, maka validation konfirmasi nama nya buat nama_confirmation.