get(); $role = Role::all()->sortByDesc('id'); return view('admin2.pages.user', [ 'user' => $user, 'role' => $role ]); } public function store(Request $request){ try { $request->validate([ 'name' => 'required|string|max:255', 'email' => 'required|email', 'image' => 'required|image|mimes:jpeg,png,jpg|max:20000', 'password' => 'required|string', 'role_id' => 'required|numeric' ], [ 'name.required' => 'Nama harus diisi', 'name.string' => 'Nama harus berupa string', 'name.max' => 'Nama maksimal 255 karakter', 'email.required' => 'Email harus diisi', 'email.email' => 'Email tidak valid', 'image.required' => 'Image harus diisi', 'image.image' => 'File harus berupa gambar', 'image.mimes' => 'File harus berupa jpeg, png, atau jpg', 'image.max' => 'File maksimal 20MB', 'password.required' => 'Password harus diisi', 'password.string' => 'Password harus berupa string', 'role_id.required' => 'Role harus diisi', 'role_id.numeric' => 'Role harus berupa angka' ]); $image = $request->file('image'); $image_name = time() . '.' . $image->getClientOriginalExtension(); $image_path = public_path('images/user/') . $image_name; $image->move(public_path('images/user/'), $image_name); $user = new User(); $user->name = $request->name; $user->image = $image_name; $user->email = $request->email; $user->password = bcrypt($request->password); $user->role_id = $request->role_id; $user->save(); return redirect()->back()->with('success', 'User berhasil ditambahkan'); } catch (\Exception $e) { return redirect()->back()->with('error', $e->getMessage()); } } public function update(Request $request, $id){ try { $request->validate([ 'name' => 'required|string|max:255', 'email' => 'required|email', 'role_id' => 'required|numeric' ], [ 'name.required' => 'Nama harus diisi', 'name.string' => 'Nama harus berupa string', 'name.max' => 'Nama maksimal 255 karakter', 'email.required' => 'Email harus diisi', 'email.email' => 'Email tidak valid', 'role_id.required' => 'Role harus diisi', 'role_id.numeric' => 'Role harus berupa angka' ]); if ($request->password) { $request->validate([ 'password' => 'required|string' ], [ 'password.required' => 'Password harus diisi', 'password.string' => 'Password harus berupa string' ]); } if ($request->file('image')) { $request->validate([ 'image' => 'required|image|mimes:jpeg,png,jpg|max:20000', ], [ 'image.required' => 'Image harus diisi', 'image.image' => 'File harus berupa gambar', 'image.mimes' => 'File harus berupa jpeg, png, atau jpg', 'image.max' => 'File maksimal 20MB', ]); $image = $request->file('image'); $image_name = time() . '.' . $image->getClientOriginalExtension(); $image_path = public_path('images/user/') . $image_name; $image->move(public_path('images/user/'), $image_name); } $user = User::find($id); $user->name = $request->name; if ($request->file('image')) { $user->image = $image_name; } if ($request->password) { $user->password = bcrypt($request->password); } $user->email = $request->email; $user->role_id = $request->role_id; $user->save(); return redirect()->back()->with('success', 'User berhasil diubah'); } catch (\Exception $e) { return redirect()->back()->with('error', $e->getMessage()); } } public function destroy($id){ try { $user = User::find($id); // hapus gambar $image_path = public_path('images/user/') . $user->image; if (file_exists($image_path)) { unlink($image_path); } $user->delete(); return redirect()->back()->with('success', 'User berhasil dihapus'); } catch (\Exception $e) { return redirect()->back()->with('error', $e->getMessage()); } } }