validasi kolom input

This commit is contained in:
Sveemaaa 2026-05-11 20:23:33 +07:00
parent 95093355f1
commit c9b129fb7e
6 changed files with 83 additions and 4 deletions

View File

@ -37,8 +37,26 @@ public function create()
/** /**
* Store a newly created resource in storage. * 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([ Anak::create([
'nik' => $request->nik, 'nik' => $request->nik,
'nama' => $request->nama, 'nama' => $request->nama,

View File

@ -27,15 +27,32 @@ public function create()
public function store(Request $request) 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([ IbuHamil::create([
'nik' => $request->nik, 'nik' => $request->nik,
'nama' => $request->nama, 'nama' => $request->nama,
'tgl_lahir' => $request->tgl_lahir, 'tgl_lahir' => $request->tgl_lahir,
'no_hp' => $request->no_hp,
'alamat' => $request->alamat, '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) public function edit($id)

View File

@ -38,6 +38,18 @@ public function create()
*/ */
public function store(Request $request) 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([ User::create([
'nama' => $request->nama, 'nama' => $request->nama,
'no_hp' => $request->no_hp, 'no_hp' => $request->no_hp,

View File

@ -105,4 +105,15 @@
.custom-input { border-radius: 0 10px 10px 0 !important; } .custom-input { border-radius: 0 10px 10px 0 !important; }
</style> </style>
@if ($errors->any())
<script src="https://cdn.jsdelivr.net/npm/sweetalert2@11"></script>
<script>
Swal.fire({
icon: 'error',
title: 'Gagal Menyimpan!',
text: '{{ $errors->first() }}', // Menampilkan pesan error pertama dari Controller
confirmButtonColor: '#FF782D',
});
</script>
@endif
@endsection @endsection

View File

@ -94,5 +94,15 @@
.input-group-text { border-radius: 10px 0 0 10px !important; } .input-group-text { border-radius: 10px 0 0 10px !important; }
.custom-input { border-radius: 0 10px 10px 0 !important; } .custom-input { border-radius: 0 10px 10px 0 !important; }
</style> </style>
@if ($errors->any())
<script src="https://cdn.jsdelivr.net/npm/sweetalert2@11"></script>
<script>
Swal.fire({
icon: 'error',
title: 'Gagal Menyimpan!',
text: '{{ $errors->first() }}', // Menampilkan pesan error pertama dari Controller
confirmButtonColor: '#FF782D',
});
</script>
@endif
@endsection @endsection

View File

@ -114,5 +114,16 @@
cursor: pointer; cursor: pointer;
} }
</style> </style>
@if ($errors->any())
<script src="https://cdn.jsdelivr.net/npm/sweetalert2@11"></script>
<script>
Swal.fire({
icon: 'error',
title: 'Gagal Menyimpan!',
text: '{{ $errors->first() }}', // Menampilkan pesan error pertama dari Controller
confirmButtonColor: '#FF782D',
});
</script>
@endif
@endsection @endsection