Tutorial Laravel 6 - Membuat Validasi Form dengan Validator

Post a Comment


Pada artikel tutorial kali ini saya akan menjelaskan bagaimana cara membuat validasi form dengan menggunakan fitur Laravel yaitu Validator. Maksud dari validasi form di sini contoh sederhananya misalnya anda menginginkan suatu inputan harus diisi oleh user. Untuk bagian HTML nya bisa digunakan properti required, namun untuk alasan keamanan pengecekan ini tentu saja harus dilakukan pada bagian backend juga dengan menggunakan php. 

Bagi user yang mengerti mengenai programming, properti required pada HTML ini dapat dengan mudah dihilangkan dengan mengedit halaman menggunakan inspect element pada browser. Dalam artikel ini saya akan menjelaskan contoh sederhana saja bagaimana cara menggunakan Validator ini. 

Hal pertama yang harus anda lakukan adalah menginclude Validator terlebih dahulud dalam file Controller yang anda punya caranya adalah dengan menambahkan kode berikut :

use Validator;

Kemudian perhatikan contoh kode yang saya berikan di bawah ini :

        $rules = array(
            'judul' => 'required',
            'keterangan' => 'required',
            'attachment_1' => 'max:3072',
            'attachment_2' => 'max:3072',
            'attachment_3' => 'max:3072'
        );
        $validator = Validator::make($request->all(), $rules);
        if ($validator->fails()) {
            return Redirect::to('/backend/ticket/create')->withErrors($validator)->withInput($request->all());
        }  


Potongan kode di atas saya letakkan pada function yang dipanggil saat form disubmit. 

Variabel $rules adalah syarat-syarat validasi yang diberlakukan pada field-field yang terdapat pada $rules tersebut. Dalam contoh di atas field judul dan keterangan menggunakan syarat required yang artinya field tersebut wajib diisi.

Sedangkan untuk field attachment_1, attachment_2 dan attachment_3 menggunakan syarat max:3072 yang artinya ukuran file yang diupload maksimal 3072 byte. Untuk syarat-syarat validasi yang lain dapat anda cari sendiri atau mungkin nantinya akan saya buatkan satu artikel khusus untuk membahas syarat-syarat validasi apa saja yang sudah disediakan oleh laravel.


$validator = Validator::make($request->all(), $rules);

Kode di atas akan melakukan validasi semua inputan $request->all() dengan menggunakan syarat $rules yang sudah dibuat sebelumnya. Hasil dari validasi tersebut ditampung dalam variabel $validator.

        if ($validator->fails()) {
            return Redirect::to('/backend/ticket/create')->withErrors($validator)->withInput($request->all());
        }  

Dan yang terakhir adalah melakukan pengecekan apakah terdapat syarat validasi yang tidak memenuhi. Jika tidak terpenuhi, dalam contoh di atas, saya melakukan redirect url dengan melakukan passing error yang terdapat pada variabel $validator.

Nah langkah terakhir yang perlu kita lakukan adalah menampilkan error validasi tersebut pada form yang sudah kita buat. Bagaimana cara menampilkan error dapat dilihat pada contoh kode di bawah ini:

                    @if ($errors->any())
                        <div class="row">
                            <div class="col-xs-12 alert alert-danger alert-dismissible" role="alert"">
                                @foreach ($errors->all() as $error)
                                    {{ $error }}<br/>  
                                @endforeach
                                <a href="#" class="close" data-dismiss="alert" aria-label="close">&times;</a>
                            </div>
                        </div>
                    @endif 

Semua error validasi ditampung dalam variabel $errors dan untuk menampilkannya adalah dengan menggunakan foreach $errors->all().

Contoh di atas saya menggunakan bootstrap 3 untuk menampilkan pesan errornya. Tentu saja anda dapat menyesuaikan tampilan dari pesan error tersebut sesuai dengan program yang anda buat.

Demikian penjelasan singkat saya pada artikel Tutorial Laravel 6 - Membuat Validasi Form dengan Validator, Seperti biasa, segala pertanyaan mengenai artikel ini dapat anda tanyakan menggunakan kolom komentar di bawah. Terima kasih

Related Posts

Post a Comment