with([ 'employees'=> User::all(), 'schedules'=>Schedule::all() ]); } public function store(Request $request) { $request->validate([ 'name' => 'required', 'email' => 'required|email|unique:users', 'pin_code' => 'required', 'password' => 'required|min:6', 'position' => 'required|in:HRD,Staff,Manager' ]); $user = new User; $user->name = $request->name; $user->email = $request->email; $user->pin_code = $request->pin_code; $user->password = Hash::make($request->password); $user->role = $request->position; $user->save(); if($request->schedule){ $schedule = Schedule::whereSlug($request->schedule)->first(); $user->schedules()->attach($schedule); } return redirect()->route('employees.index') ->with('success', 'Employee has been created successfully!'); } public function update(Request $request, $id) { $request->validate([ 'name' => 'required', 'email' => 'required|email|unique:users,email,'.$id, 'pin_code' => 'required', 'position' => 'required|in:HRD,Staff,Manager' ]); $user = User::findOrFail($id); $user->name = $request->name; $user->email = $request->email; $user->pin_code = $request->pin_code; $user->role = $request->position; if($request->password) { $user->password = Hash::make($request->password); } $user->save(); if ($request->schedule) { $user->schedules()->detach(); $schedule = Schedule::whereSlug($request->schedule)->first(); $user->schedules()->attach($schedule); } return redirect()->route('employees.index') ->with('success', 'Employee has been updated successfully!'); } public function destroy($id) { $user = User::findOrFail($id); $user->schedules()->detach(); $user->delete(); return redirect()->route('employees.index') ->with('success', 'Employee has been deleted successfully!'); } }