resSuccess($users); } public function index(){ $users = User::paginate(); return view('master.users.index', compact('users')); } public function create(){ $roles = Role::all(); return view('master.users.create', compact('roles')); } public function store(Request $request){ $request->validate([ 'name' => ['required', 'string', 'max:255'], 'email' => ['required', 'string', 'email', 'max:255', 'unique:users'], 'password' => ['required', 'confirmed', 'max:255'], 'firstname' => ['required', 'string', 'max:255'], 'lastname' => ['required', 'string', 'max:255'], 'position' => ['required', 'string', 'max:255'], 'role_id' => 'required|exists:roles,id' ]); DB::beginTransaction(); try{ $user = User::create([ 'name' => $request->name, 'email' => $request->email, 'password' => Hash::make($request->password), 'firstname' => $request->firstname, 'lastname' => $request->lastname, 'position' => $request->position ]); $user->roles()->attach($request->role_id); DB::commit(); return redirect()->route('users.index')->with('success','Successfully registered'); }catch(\Exception $e){ DB::rollBack(); return redirect()->back()->with("error", $e->getMessage()); }; } public function show($id){ $user = User::find($id); return view('master.users.show', compact('user')); } public function edit($id){ $user = User::find($id); $roles = Role::all(); return view('master.users.edit', compact('user', 'roles')); } public function update(Request $request, $id){ $user = User::find($id); $validatedData = $request->validate([ 'name' => ['required', 'string', 'max:255'], 'email' => ['required', 'string', 'email', 'max:255', Rule::unique('users')->ignore($id)], 'firstname' => ['required', 'string', 'max:255'], 'lastname' => ['required', 'string', 'max:255'], 'position' => ['required', 'string', 'max:255'], 'role_id' => ['required', 'exists:roles,id'], ]); try{ DB::beginTransaction(); $updateData = [ 'name' => $validatedData['name'], 'email' => $validatedData['email'], 'firstname' => $validatedData['firstname'], 'lastname' => $validatedData['lastname'], 'position' => $validatedData['position'], ]; $user->update($updateData); $user->roles()->sync([$request->role_id]); DB::commit(); return redirect()->route('users.index')->with('success', 'Successfully'); }catch(\Exception $e){ DB::rollBack(); return redirect()->back()->with("error", $e->getMessage()); } } public function destroy($id){ $user = User::find($id); $user->delete(); return redirect()->route('users.index')->with('success','Successfully deleted'); } }