$santri, 'fields' => [ 'nama' => 'text', 'alamat' => 'text', 'status_santri' => 'select', 'role_santri' => 'select', 'jk' => 'select', 'tanggal_lahir' => 'date', 'foto' => 'file' ], 'options' => [ 'status_santri' => ['boyong' => 'Boyong', 'aktif' => 'Aktif'], 'role_santri' => ['santri' => 'Santri', 'pengurus' => 'Pengurus'], 'jk' => ['laki laki' => 'Laki-Laki', 'perempuan' => 'Perempuan'], ], ]); } public function create() {} public function store(Request $request) { $request->validate([ 'nama' => 'required', 'alamat' => 'required', 'status_santri' => 'required', 'role_santri' => 'required', 'jk' => 'required', 'tanggal_lahir' => 'required|date', 'foto' => 'nullable|image|mimes:jpeg,png,jpg,gif,svg|max:2048' ], [ 'nama.required' => 'wajib mengisi nama santri', 'alamat.required' => 'wajib mengisi alamat santri', 'status_santri.required' => 'wajib mengisi status santri', 'role.required' => 'wajib mengisi role santri', 'gender.required' => 'wajib mengisi gender', 'ttl.required' => 'wajib mengisi tanggal lahir santri', 'ttl.date' => 'tanggal lahir harus dalam format tanggal yang benar', ]); $fotoPath = null; if ($request->hasFile('foto')) { $foto = $request->file('foto'); $fotoName = time() . '_' . $foto->getClientOriginalName(); $foto->move(public_path('fotoSantri'), $fotoName); $fotoPath = 'fotoSantri/' . $fotoName; } try { $santri = Santri::create([ 'nama' => $request->nama, 'alamat' => $request->alamat, 'status_santri' => $request->status_santri, 'role_santri' => $request->role_santri, 'jk' => $request->jk, 'tanggal_lahir' => $request->tanggal_lahir, 'foto' => $fotoPath ]); // dd($santri); return redirect()->back()->with('success', 'Data berhasil ditambahkan'); } catch (\Throwable $th) { // dd($th->getMessage()); return redirect()->back()->with('error', 'Data gagal ditambahkan : ' . $th->getMessage()); } } public function update(Request $request, $id) { $request->validate([ 'nama' => 'required', 'alamat' => 'required', 'status_santri' => 'required', 'role_santri' => 'required', 'jk' => 'required', 'tanggal_lahir' => 'required|date', 'foto' => 'nullable|image|mimes:jpeg,png,jpg,gif,svg|max:2048' ], [ 'nama.required' => 'wajib mengisi nama santri', 'alamat.required' => 'wajib mengisi alamat santri', 'status_santri.required' => 'wajib mengisi status santri', 'role_santri.required' => 'wajib mengisi role santri', 'jk.required' => 'wajib mengisi jenis kelamin', 'tanggal_lahir.required' => 'wajib mengisi tanggal lahir santri', 'tanggal_lahir.date' => 'tanggal lahir harus dalam format tanggal yang benar', ]); try { $santri = Santri::findOrFail($id); $fotoPath = $santri->foto; if ($request->hasFile('foto')) { if ($santri->foto && File::exists(public_path($santri->foto))) { File::delete(public_path($santri->foto)); } $foto = $request->file('foto'); $fotoName = time() . '_' . $foto->getClientOriginalName(); $foto->move(public_path('fotoSantri'), $fotoName); $fotoPath = 'fotoSantri/' . $fotoName; } $updateStatus = $santri->update([ 'nama' => $request->nama, 'alamat' => $request->alamat, 'status_santri' => $request->status_santri, 'role_santri' => $request->role_santri, 'jk' => $request->jk, 'tanggal_lahir' => $request->tanggal_lahir, 'foto' => $fotoPath ]); if (!$updateStatus) { return redirect()->back()->with('error', 'Gagal memperbarui data: Update gagal di database.'); } return redirect()->back()->with('success', 'Data Berhasil Diubah'); } catch (\Throwable $th) { return redirect()->back()->with('error', 'Gagal memperbarui data: ' . $th->getMessage()); } } public function destroy(Santri $santri, $id) { $santri = Santri::findOrFail($id); $santri->delete(); File::delete('fotoSantri/' . basename($santri->foto)); return redirect()->back()->with('success', 'data berhasil di hapus'); } }