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

Postingan Populer