$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, Santri $santri, $id) { $request->validate( [ 'nama' => 'required', 'alamat' => 'required', 'status_santri' => 'required', 'role_santri' => 'required', 'jk' => 'required', 'tanggal_lahir' => 'required', 'foto' => 'nullable|image|mimes:jpeg,png,jpg,gif,svg|max:2048' ], [ 'nama.required' => 'nama santri wajib di isi', 'alamat.required' => 'alamat santri wajib di isi', 'status_santri.required' => 'wajib memilih status santri', 'role_santri.required' => 'wajib memilih role santri', 'jk.required' => 'wajib memilih jenis kelamin santri', 'tanggal_lahir.required' => 'wajib mengisi tanggal lahir santri' ] ); $fotoPath = null; if ($request->has('foto')) { $foto = $request->file('foto'); $fotoName = time() . '_' . $foto->getClientOriginalName(); $foto->move(public_path('fotoSantri/'), $fotoName); $fotoPath = 'fotoSantri/' . $fotoName; } $santri = Santri::findOrFail($id); try { if ($request->file('foto') == '') { $santri->nama = $request->nama; $santri->alamat = $request->alamat; $santri->status_santri = $request->status_santri; $santri->role_santri = $request->role_santri; $santri->jk = $request->jk; $santri->tanggal_lahir = $request->tanggal_lahir; } else { File::delete('fotoSantri/' . basename($santri->foto)); $santri->foto = $fotoPath; $santri->nama = $request->nama; $santri->alamat = $request->alamat; $santri->status_santri = $request->status_santri; $santri->role_santri = $request->role_santri; $santri->jk = $request->jk; $santri->tanggal_lahir = $request->tanggal_lahir; } return redirect()->back()->with('success', 'Data Berhasil Di Ubah'); } catch (\Throwable $th) { return redirect()->back()->with('error', 'Gagal' . $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'); } }