Form Request Validation

Oleh 5E_Raffi Naufal Fahreza di 24 Sep 2025 | 22:13
5E_Raffi Naufal Fahreza

5E_Raffi Naufal Fahreza

Siswa
Postingan: 1
Anggota sejak: 9 Sep 2025

FORUM REQUEST VALIDATION

Tujuan Pembelajaran

Setelah modul ini, Mahasiswa diharapkan mampu:

1.              Memahami konsep validasi form di Laravel.

2.              Membuat Form Request Validation untuk memvalidasi input.

3.              Menampilkan error dengan jelas kepada pengguna.

4.          Mengeksplorasi aturan validasi standar dan custom.

1. Pengenalan Form Request Validation

Apa itu Form Request Validation?

        Form Request Validation memisahkan logika validasi dari controller.

        Membuat kode lebih rapi, aman, dan mudah diuji.

1.     Buat form HTML sederhana:

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

    <input type="text" name="name" placeholder="Nama">

    <input type="email" name="email" placeholder="Email">

    <input type="password" name="password" placeholder="Password">

    <button type="submit">Daftar</button>

</form>

2.     Coba kirim data yang salah, misal email tidak valid.

3.     Amati apa yang terjadi jika validasi tidak diterapkan.

Note: Data bisa masuk database tanpa validasi → berisiko error & keamanan.

2. Membuat Form Request

1.     Jalankan command artisan:

php artisan make:request StoreUserRequest

2.     Atur rules di app/Http/Requests/StoreUserRequest.php:

public function rules()

{     return [

        'name' => 'required|string|max:50',

        'email' => 'required|email|unique:users,email',

        'password' => 'required|min:8|confirmed'

    ];

}

catatan:

        Ubah max:50 menjadi max:5. Kirim nama lebih panjang → apa yang terjadi?

        Ubah required menjadi nullable. Apa yang berubah pada form? 3. Menghubungkan Request ke Controller use App\Http\Requests\StoreUserRequest; public function store(StoreUserRequest $request)

{

    User::create($request->validated());     return redirect()->back()->with('success', 'User berhasil didaftarkan');

}

Catatan:

        $request->validated() otomatis hanya mengambil data yang valid.

        Controller lebih bersih, semua logika validasi di Form Request. 4. Menampilkan Error ke User

Tambahkan di Blade view:

@if ($errors->any())

    <div class="alert alert-danger">

        <ul>

            @foreach ($errors->all() as $error)

                <li>{{ $error }}</li>

            @endforeach

        </ul>

    </div>

@endif

catatan:

                 Kirim input salah → error muncul.

                 Ubah teks error default di Form Request: public function messages()

{     return [         'name.required' => 'Nama wajib diisi!',

        'email.email' => 'Format email tidak valid!',

    ];

}

                 Uji coba lagi, lihat perbedaan pesan error.

5. Validasi Lanjutan & Custom

Contoh validasi custom:

'username' => ['required', 'alpha_dash', function ($attribute, $value, $fail) {     if ($value === 'admin') {

        $fail('Username tidak boleh "admin".');

    }

}],

Catatan:

                 Input “admin” → muncul error custom.

                 Coba validasi conditional required_if, required_with. 

24 Sep 2025 | 22:13
0 Suka

Laporkan

Silakan jelaskan laporan secara singkat dan jelas.