From c9b129fb7ed84e9281e8e2839129ac2e315d249e Mon Sep 17 00:00:00 2001 From: Sveemaaa Date: Mon, 11 May 2026 20:23:33 +0700 Subject: [PATCH] validasi kolom input --- .../app/Http/Controllers/AnakController.php | 20 +++++++++++++++++- .../Http/Controllers/IbuHamilController.php | 21 +++++++++++++++++-- .../app/Http/Controllers/UsersController.php | 12 +++++++++++ .../resources/views/balita/create.blade.php | 11 ++++++++++ .../views/ibu_hamil/create.blade.php | 12 ++++++++++- .../resources/views/users/create.blade.php | 11 ++++++++++ 6 files changed, 83 insertions(+), 4 deletions(-) diff --git a/project/app/Http/Controllers/AnakController.php b/project/app/Http/Controllers/AnakController.php index e187e8c..2199b55 100644 --- a/project/app/Http/Controllers/AnakController.php +++ b/project/app/Http/Controllers/AnakController.php @@ -37,8 +37,26 @@ public function create() /** * Store a newly created resource in storage. */ - public function store(Request $request) + public function store(Request $request) { + // 1. Perbaiki aturan validasi di sini + $request->validate([ + // Pakai digits:16 agar user wajib input 16 angka + 'nik' => 'required|digits:16|unique:balita,nik', + 'nama' => 'required', + 'jenis_kelamin' => 'required', + 'tgl_lahir' => 'required|date|before_or_equal:today', + 'nama_ortu' => 'required', + 'alamat' => 'required' + ], [ + // Custom pesan error + 'nik.required' => 'NIK wajib diisi.', + 'nik.digits' => 'NIK harus berjumlah 16 digit angka.', + 'nik.unique' => 'NIK ini sudah terdaftar, silakan masukkan NIK lain.', + 'tgl_lahir.before_or_equal' => 'Tanggal lahir tidak boleh melebihi hari ini.', + ]); + + // Jika lolos validasi, data akan disimpan Anak::create([ 'nik' => $request->nik, 'nama' => $request->nama, diff --git a/project/app/Http/Controllers/IbuHamilController.php b/project/app/Http/Controllers/IbuHamilController.php index 5a19072..afe0b83 100644 --- a/project/app/Http/Controllers/IbuHamilController.php +++ b/project/app/Http/Controllers/IbuHamilController.php @@ -27,15 +27,32 @@ public function create() public function store(Request $request) { + $request->validate([ + // Validasi NIK wajib 16 digit dan unik di tabel ibu_hamil + 'nik' => 'required|digits:16|unique:ibu_hamil,nik', + 'nama' => 'required', + 'tgl_lahir' => 'required|date|before_or_equal:today', + 'no_hp' => 'required|numeric', + 'alamat' => 'required', + ], [ + // Custom pesan error agar ramah pengguna + 'nik.required' => 'NIK wajib diisi.', + 'nik.digits' => 'NIK harus tepat 16 digit angka.', + 'nik.unique' => 'NIK ini sudah terdaftar dalam sistem.', + 'tgl_lahir.before_or_equal' => 'Tanggal lahir tidak valid (melebihi hari ini).', + 'no_hp.numeric' => 'Nomor HP harus berupa angka.', + ]); + + // Jika validasi lolos, proses simpan data IbuHamil::create([ 'nik' => $request->nik, 'nama' => $request->nama, 'tgl_lahir' => $request->tgl_lahir, + 'no_hp' => $request->no_hp, 'alamat' => $request->alamat, - 'no_hp' => $request->no_hp ]); - return redirect()->route('ibu_hamil.index')->with('success','Data berhasil ditambahkan'); + return redirect()->route('ibuhamil.index')->with('success', 'Data Ibu Hamil berhasil ditambahkan!'); } public function edit($id) diff --git a/project/app/Http/Controllers/UsersController.php b/project/app/Http/Controllers/UsersController.php index e2753b2..383fc2c 100644 --- a/project/app/Http/Controllers/UsersController.php +++ b/project/app/Http/Controllers/UsersController.php @@ -38,6 +38,18 @@ public function create() */ public function store(Request $request) { + // 1. Tambahkan validasi ini + $request->validate([ + 'email' => 'required|email|unique:users,email', + 'nama' => 'required', + 'no_hp' => 'required', + 'password' => 'required|min:8', + 'role' => 'required' + ], [ + // Custom pesan error (opsional) + 'email.unique' => 'Email ini sudah terdaftar, silakan gunakan email lain.', + ]); + User::create([ 'nama' => $request->nama, 'no_hp' => $request->no_hp, diff --git a/project/resources/views/balita/create.blade.php b/project/resources/views/balita/create.blade.php index f2df8d8..5c3b62d 100644 --- a/project/resources/views/balita/create.blade.php +++ b/project/resources/views/balita/create.blade.php @@ -105,4 +105,15 @@ .custom-input { border-radius: 0 10px 10px 0 !important; } +@if ($errors->any()) + + +@endif @endsection diff --git a/project/resources/views/ibu_hamil/create.blade.php b/project/resources/views/ibu_hamil/create.blade.php index 0307195..d2c4e3c 100644 --- a/project/resources/views/ibu_hamil/create.blade.php +++ b/project/resources/views/ibu_hamil/create.blade.php @@ -94,5 +94,15 @@ .input-group-text { border-radius: 10px 0 0 10px !important; } .custom-input { border-radius: 0 10px 10px 0 !important; } - +@if ($errors->any()) + + +@endif @endsection diff --git a/project/resources/views/users/create.blade.php b/project/resources/views/users/create.blade.php index ead6d66..ade5233 100644 --- a/project/resources/views/users/create.blade.php +++ b/project/resources/views/users/create.blade.php @@ -114,5 +114,16 @@ cursor: pointer; } +@if ($errors->any()) + + +@endif @endsection