
Daftar Isi
Pernahkah Anda merasa bingung bagaimana cara memastikan data dari pengguna sudah benar sebelum disimpan ke database? Misalnya, Anda ingin memastikan email benar-benar valid, atau password minimal 8 karakter. Jika Anda menggunakan Laravel, kabar baiknya — framework ini sudah menyediakan sistem validasi form yang sangat powerful dan mudah digunakan.
Namun, banyak pemula yang masih bingung memulai dari mana. Kadang kode validasi tidak bekerja, pesan error tidak muncul, atau data malah tetap tersimpan walaupun tidak sesuai aturan. Tenang — artikel ini hadir untuk membantu Anda memahami dasar-dasar validasi form di Laravel secara langkah demi langkah, lengkap dengan contoh praktis.
Setelah membaca artikel ini, Anda akan mengetahui:
- Apa itu validasi form di Laravel dan mengapa penting.
- Cara menggunakan metode
validate()dengan benar. - Bagaimana menampilkan pesan error otomatis di tampilan (Blade).
- Tips agar validasi lebih efisien dan rapi untuk proyek Anda.
1. Apa Itu Validasi Form di Laravel?
Validasi adalah proses memastikan bahwa data yang dikirim oleh pengguna sesuai aturan tertentu sebelum diproses lebih lanjut.
Contohnya:
- Email harus dalam format yang benar.
- Password tidak boleh kosong dan minimal 8 karakter.
- Nama wajib diisi.
Laravel memiliki fitur bawaan untuk melakukan hal ini dengan mudah — cukup menggunakan metode validate() di controller Anda.
2. Menyiapkan Form di Laravel
Sebagai contoh, mari kita buat form sederhana untuk mendaftarkan pengguna.
<!-- resources/views/register.blade.php -->
<form action="{{ route('register.store') }}" method="POST">
@csrf
<label>Nama:</label>
<input type="text" name="name" value="{{ old('name') }}">
@error('name')
<div style="color:red">{{ $message }}</div>
@enderror
<label>Email:</label>
<input type="email" name="email" value="{{ old('email') }}">
@error('email')
<div style="color:red">{{ $message }}</div>
@enderror
<label>Password:</label>
<input type="password" name="password">
@error('password')
<div style="color:red">{{ $message }}</div>
@enderror
<button type="submit">Daftar</button>
</form>
Kode di atas membuat form dengan tiga input: nama, email, dan password.
Perhatikan penggunaan @error('field') — ini akan otomatis menampilkan pesan error jika validasi gagal.
Membuat Route dan Controller
Tambahkan route berikut di file routes/web.php:
Route::get('/register', [UserController::class, 'create'])->name('register.create');
Route::post('/register', [UserController::class, 'store'])->name('register.store');
Lalu buat controller UserController dengan perintah:
php artisan make:controller UserController
Terapkan Validasi di Controller
Sekarang, buka file UserController.php dan tambahkan kode berikut:
use Illuminate\Http\Request;
class UserController extends Controller
{
public function create()
{
return view('register');
}
public function store(Request $request)
{
$validatedData = $request->validate([
'name' => 'required|min:3',
'email' => 'required|email|unique:users,email',
'password' => 'required|min:8',
]);
// Jika validasi lolos, Anda bisa simpan data
// User::create($validatedData);
return back()->with('success', 'Pendaftaran berhasil!');
}
}
Mari kita bahas sedikit:
required→ kolom wajib diisi.min:3→ minimal 3 karakter.email→ harus format email valid.unique:users,email→ pastikan email belum pernah terdaftar.
Laravel secara otomatis akan:
- Mengembalikan ke halaman form jika validasi gagal.
- Menyertakan pesan error yang bisa ditampilkan di view.
- Menyimpan input sebelumnya (
old()) agar tidak hilang.
Menampilkan Pesan Sukses atau Error
Anda bisa menambahkan pesan sukses di atas form seperti ini:
@if (session('success'))
<div style="color:green">{{ session('success') }}</div>
@endif
Kini, pengguna akan mendapat umpan balik langsung setelah mengirim form.
Tips Tambahan: Custom Message dan Request Terpisah
Untuk menjaga kode tetap rapi, Anda bisa memisahkan logika validasi ke dalam Form Request.
php artisan make:request StoreUserRequest
Kemudian di dalam StoreUserRequest.php:
public function rules(): array
{
return [
'name' => 'required|min:3',
'email' => 'required|email|unique:users,email',
'password' => 'required|min:8',
];
}
public function messages(): array
{
return [
'name.required' => 'Nama wajib diisi.',
'email.unique' => 'Email sudah digunakan, silakan pilih yang lain.',
];
}
Dan di controller Anda cukup tulis:
public function store(StoreUserRequest $request)
{
// Semua validasi otomatis dijalankan
return back()->with('success', 'Pendaftaran berhasil!');
}
Dengan cara ini, kode Anda jadi lebih bersih dan mudah dikelola.
Sekarang Anda sudah tahu dasar-dasar validasi form di Laravel — mulai dari membuat form, menulis aturan validasi, hingga menampilkan pesan error dan sukses.
Dengan memahami ini, Anda bisa memastikan aplikasi Anda lebih aman, rapi, dan profesional.
Ingin melangkah lebih jauh?
👉 Baca juga: Cara Membuat Custom Validation Rule di Laravel
