Press ESC to close

Validasi Form di laravel (menengah)

WhatsAppTelegramFacebookXThreadsCopy Link

Pernahkah Anda membuat form di Laravel, tapi bingung bagaimana cara memastikan data yang dikirim benar dan aman? πŸ€”
Banyak pemula yang sering mengalami masalah seperti data tidak tervalidasi, pesan error tidak muncul, atau bahkan form tidak berjalan sesuai harapan. Hal ini sering terjadi karena belum memahami sistem validasi form di Laravel dengan baik.

Tenang β€” artikel ini hadir untuk membantu Anda!
Dalam panduan ini, Anda akan belajar langkah demi langkah cara menerapkan validasi form di Laravel dengan cara yang benar, mulai dari konsep dasar, penerapan validasi sederhana, hingga validasi kustom (custom validation).
Setelah membaca sampai akhir, Anda akan bisa membuat form yang aman, rapi, dan profesional, tanpa lagi bingung soal error validation.


1. Apa Itu Validasi di Laravel?

Sebelum masuk ke teknis, mari pahami dulu konsep dasarnya.
Validasi adalah proses memastikan bahwa data yang diterima dari user memenuhi aturan tertentu sebelum diproses lebih lanjut. Misalnya, memastikan email valid, password minimal 8 karakter, atau field nama tidak kosong.

Laravel menyediakan sistem validasi bawaan (built-in validation) yang sangat kuat dan mudah digunakan. Anda bisa menerapkannya langsung di Controller, Form Request, atau bahkan Model.


Menambahkan Validasi di Controller

Mari mulai dari cara yang paling umum: validasi langsung di controller.
Misalnya, Anda memiliki form registrasi pengguna dengan field name, email, dan password.

Langkah-langkahnya:

  1. Buat route dan controller // routes/web.php Route::post('/register', [UserController::class, 'store']);
  2. Tambahkan validasi di method controller// app/Http/Controllers/UserController.php public function store(Request $request) { $validated = $request->validate([ 'name' => 'required|min:3|max:50', 'email' => 'required|email|unique:users', 'password' => 'required|min:8|confirmed', ]); // Simpan data ke database User::create($validated); return redirect('/home')->with('success', 'Registrasi berhasil!'); } βœ… Penjelasan:
    • required: field wajib diisi.
    • min & max: menentukan panjang karakter minimal dan maksimal.
    • unique:users: memastikan email tidak duplikat di tabel users.
    • confirmed: cocokkan dengan field password_confirmation.

. Menampilkan Pesan Error di Blade

Laravel otomatis mengirimkan pesan error ke view jika validasi gagal.
Anda bisa menampilkannya di form menggunakan kode berikut:

@if ($errors->any())
    <div class="alert alert-danger">
        <ul>
            @foreach ($errors->all() as $error)
                <li>{{ $error }}</li>
            @endforeach
        </ul>
    </div>
@endif

Letakkan kode ini di atas form Anda, dan setiap kali validasi gagal, pesan error akan muncul dengan rapi.

4. Menggunakan Form Request (Cara yang Lebih Rapi)

Untuk proyek yang lebih besar, lebih baik memisahkan logika validasi ke dalam file khusus, yaitu Form Request.

Langkah-langkahnya:

  1. Buat Form Request baru: php artisan make:request StoreUserRequest
  2. Atur aturan validasi di file yang dibuat: // app/Http/Requests/StoreUserRequest.php public function rules(): array { return [ 'name' => 'required|min:3|max:50', 'email' => 'required|email|unique:users', 'password' => 'required|min:8|confirmed', ]; } public function messages() { return [ 'name.required' => 'Nama wajib diisi.', 'email.unique' => 'Email sudah digunakan, silakan pilih yang lain.', ]; }
  3. Gunakan di Controller: public function store(StoreUserRequest $request) { User::create($request->validated()); return redirect('/home')->with('success', 'Registrasi berhasil!'); }

Dengan cara ini, kode Anda menjadi lebih bersih, mudah dibaca, dan mudah dikelola.


Membuat Validasi Kustom (Custom Validation Rules)

Kadang, aturan bawaan Laravel belum cukup. Misalnya, Anda ingin memastikan username tidak mengandung karakter khusus.
Anda bisa membuat rule kustom dengan cara berikut:

  1. Buat Rule Baru: php artisan make:rule ValidUsername
  2. Isi Logic Validasi: // app/Rules/ValidUsername.php public function passes($attribute, $value) { return preg_match('/^[A-Za-z0-9_]+$/', $value); } public function message() { return 'Username hanya boleh berisi huruf, angka, dan underscore.'; }
  3. Gunakan di Controller atau Form Request: use App\Rules\ValidUsername; public function rules() { return [ 'username' => ['required', new ValidUsername], ]; }

Sekarang, form Anda sudah bisa memvalidasi input sesuai kebutuhan khusus Anda sendiri!


Kini Anda sudah memahami cara melakukan validasi form di Laravel, baik menggunakan pendekatan sederhana di controller, hingga teknik Form Request dan Custom Rule yang lebih profesional.

Dengan menerapkan validasi yang baik, Anda tidak hanya meningkatkan keamanan aplikasi, tetapi juga memberikan pengalaman pengguna yang lebih baik.

πŸ‘‰ Baca juga: Cara Mengirim Data Form ke Database di Laravel

WhatsAppTelegramFacebookXThreadsCopy Link