Langsung ke konten utama

Cara Implementasi Laravel Form Request untuk Validasi yang Bersih

Pendahuluan

Bayangin lagi ngerjain fitur sederhana, tapi pas mau push code, controller kamu isinya validasi yang panjangnya bisa bikin scroll mouse rusak. Saya sering banget nemuin controller yang isinya 50 baris validasi tok, padahal fungsi utamanya cuma buat save data. Laravel punya penyelamatnya: Form Request. Ini bukan cuma soal rapi-rapiin file, tapi soal misahin tanggung jawab biar hidup kita pas maintenance project lebih tenang.

Tips & Best Practices

  • Di banyak project, biasanya saya mulai dari naruh validasi di file terpisah daripada di controller agar controller tetap 'tipis' dan fokus pada proses bisnisnya saja.
  • Kalau project makin gede, saya selalu biasain buat custom error message di dalam file Request-nya langsung, biar pesan error-nya lebih ramah pengguna daripada pesan bawaan sistem.
  • Pas lagi kolaborasi, saya pastiin buat make logic authorization di dalam method authorize() supaya akses level user terjamin aman bahkan sebelum data masuk ke validasi.

Contoh Kode

Biasanya kalau saya mau bikin validasi user register, saya bakal bikin file StoreUserRequest:

public function rules(): array
{
    return [
        'email' => 'required|email|unique:users',
        'password' => 'required|min:8|confirmed',
    ];
}

public function messages(): array
{
    return [
        'email.unique' => 'Waduh, email ini udah ada yang pakai nih.',
    ];
}

Variasi Implementasi

Ada dua jalur yang sering saya ambil: pake Form Request buat validasi yang bakal dipakai berulang, atau tetep stay di $request->validate() kalau fitur-nya cuma 'sekali pakai' biar nggak kebanyakan file sampah di folder request. Kalau aplikasi makin kompleks, saya lebih milih Form Request karena gampang buat nambahin logic validasi yang butuh hit ke database lewat service class.

Kesalahan Umum

  • Lupa kalau authorize() default-nya false, jadi sering kejadian error 403 padahal code-nya udah bener.
  • Masukin terlalu banyak logic kompleks di dalam rules() padahal harusnya cuma buat validasi.
  • Ngadu semua validasi ke satu Request Class, padahal tiap action punya kebutuhan field yang beda-beda.
  • Nggak pake prepareForValidation() buat bersihin input, padahal kadang data user perlu di-sanitize dulu (misal: trim string).
  • Ketergantungan sama validasi yang sifatnya hardcoded, padahal bisa dibikin lebih dinamis pake environment variabel.

Ringkasan

Intinya, pakai Form Request itu soal investasi kenyamanan di masa depan. Mungkin awal-awal kerasa ribet karena harus bikin file baru, tapi pas project kamu udah makin gede dan controller mulai berantakan, kamu bakal ngerasa bersyukur banget udah misahin validasi sejak awal. Coding itu bukan cuma bikin jalan, tapi bikin nyaman buat dibaca lagi bulan depan.

Komentar

Postingan populer dari blog ini

Fungsi lain tombol penerima panggilan di headset

Kegunaan tombol yang berada di headset utamanya adalah untuk menerima panggilan dan pause panggilan. Dan headset itu sendiri, kadang juga digunakan untuk mendengarkan music, digunakan bersama saat main game, supaya suara yang dikeluarkan oleh gadget tidak terlalu keras sehingga mengurangi beban gadget. Dengan mengurangi beban gadget, ada beberapa yang beranggapan kalau itu akan menghemat batere.

Cara Reset Password Database MySQL Menggunakan Laragon

Cara Reset Password Database MySQL Menggunakan Laragon Laragon adalah salah satu lingkungan pengembangan lokal (local development environment) yang populer di antara para pengembang web. Dalam beberapa kasus, mungkin kita perlu mereset password database MySQL pada Laragon jika lupa password atau untuk alasan keamanan tertentu. Berikut adalah langkah-langkah yang dapat kita ikuti untuk melakukan reset password database MySQL menggunakan Laragon:

Apa Itu R dan L di Headset? Ini Dia Perbedaan dan Fungsinya yang Perlu Anda Ketahui

Arti R dan L di Headset: Apa Perbedaannya? Headset adalah alat yang digunakan untuk mendengarkan suara dari sumber audio seperti ponsel, komputer, atau pemutar musik. Headset biasanya terdiri dari dua bagian, yaitu earphone yang dimasukkan ke dalam telinga dan mikrofon yang digunakan untuk berbicara. Pada earphone, kita sering melihat ada tulisan R dan L. Apa arti dan perbedaan dari kedua huruf tersebut?