
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-nyafalse, 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
Posting Komentar