Matawebsite Promo Lebaran 2022

Membuat Validasi Form Pada Laravel

date 27 Sep 2021
date Sulfikardi
date 417
date Web Programming
Membuat Validasi Form Pada Laravel

Saat membuat form input pada laravel, kita perlu menambahkan validasi agar apa yang di inputkan user sesuai dengan apa yang kita harapkan,  dan juga untuk menghindari perusakan aplikasi dengan metode injection. Seperti XSS Injection misalnya.Di laravel telah disediakan metode validasi yang kuat untuk melakukan filter data dari form yang di input user.

Membuat Route


Pertama kita definisikan route yang akan menghandle controller kita

Route::get('/post', 'PostController@create');

Route::post('/post', 'PostController@store');

Ada 2 buah route yang kita buat, pertama kita buat sebuah route yang mengarah ke PostController dengan fungsi create yang akan mengarah ke halaman form input. Lalu kita membuat route yang mengarah ke PostController dengan fungsi store untuk memparsing data yang kita.


Membuat Controller

untuk membuat controller kita dapat menjalankan perintah php artisan make:controller PostController pada terminal kita

 

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class PostController extends Controller

{

    public function create()

    {

        return view('post');

    }

    public function store(Request $request)

    {

        $request->validate([

            'author'=> 'required|max:255',

            'title_post'=> 'required|string|min:20',

            'description'=> 'required|min:100|max:255'

        ], $messages);

 

       // proses menginput data ke database jika rule validasi sudah terpenuhi

    }

}

Fungsi create digunakan untuk menampilkan halaman PostController.

Lalu pada fungsi store kita buat logic untuk menghandle form input yang di isi oleh user, jika ada data yang tidak sesuai maka data tidak akan disimpan ke database sampai semua rule pada logic validasi terpenuhi.

Membuat Tampilan Halaman Post

<div class="card-body">

                        <form action="" method="POST">

                            @csrf

                            <div class="col-md-12 mb-2">

                                <label for="validationCustom03" class="form-label">Author</label>

                                <input type="text" class="form-control @error('author') is-invalid @enderror" id="validationCustom03" name="author" value="{{old('author')}}">

                                @error('author')

                                    <div class="invalid-feedback">

                                        {{$message}}

                                    </div>

                                @enderror

                            </div>

                            <div class="col-md-12 mb-2">

                                <label for="validationCustom03" class="form-label">Judul Post</label>

                                <input type="text" class="form-control @error('title_post') is-invalid @enderror" id="validationCustom03"  name="title_post" value="{{old('title_post')}}">

                                @error('title_post')

                                    <div class="invalid-feedback">

                                        {{$message}}

                                    </div>

                                @enderror

                            </div>

                            <div class="col-md-12 mb-2">

                                <label for="validationCustom03" class="form-label">Deskripsi Post</label>

                                <textarea class="form-control @error('description') is-invalid @enderror" id="validationTextarea" placeholder="Required example textarea"  name="description" value="{{old('description')}}"></textarea>

                                @error('description')

                                    <div class="invalid-feedback">

                                        {{$message}}

                                    </div>

                                @enderror

                            </div>

                            <div class="col-md-12 mt-5">

                                <button type="submit" class="btn btn-primary">Simpan</button>

                            </div>

                        </form>

                    </div>

 

@error('description')

   <div class="invalid-feedback">

            {{$message}}

     </div>

 @enderror

 

Fungsi ini digunakan untuk menampilkan pesan error pada form input yang inputannya tidak sesuai.

Membuat Pesan Error Custom

public function store(Request $request)

    {

        $messages = [

            'required'=> ':attribute tidak boleh kosong',

            'max'=> ':attribute maximal :max karakter',

            'min'=> ':attribute minimal :min karakter'

        ];

        $request->validate([

            'author'=> 'required|max:255',

            'title_post'=> 'required|string|min:20',

            'description'=> 'required|min:100|max:255'

        ], $messages);

         // proses menginput data ke database jika rule validasi sudah terpenuhi

    }

 

Kita dapat membuat sendiri pesan error yang akan ditampikan ke user saat user menginputkan data yang salah.

Dengan menambahkan variabel $message dan isikan pesan error sesuai rule yang kita inginkan. 

Matawebsite Promo Lebaran 2022
sul.png

Sulfikardi

Web Design & Web Programming

Halo, saya seorang Web Developer yang terbiasa mengembangkan website menggunakan HTML, CSS, Javascript, PHP, MYSQL, dan Laravel. Disini saya akan membagikan pengalaman saya dalam membangun dan mengembangan website yang responsif dan dinamis

Artikel Terkait

Halo, ada yang bisa kami bantu?
Daftar Sekarang