ProfileController.php 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. <?php
  2. namespace App\Http\Controllers;
  3. use App\Http\Requests\ProfileUpdateRequest;
  4. use Illuminate\Http\RedirectResponse;
  5. use Illuminate\Http\Request;
  6. use Illuminate\Support\Facades\Auth;
  7. use Illuminate\Support\Facades\Redirect;
  8. use Illuminate\View\View;
  9. class ProfileController extends Controller
  10. {
  11. /**
  12. * Display the user's profile form.
  13. */
  14. public function edit(Request $request): View
  15. {
  16. return view('profile.edit', [
  17. 'user' => $request->user(),
  18. ]);
  19. }
  20. /**
  21. * Update the user's profile information.
  22. */
  23. public function update(ProfileUpdateRequest $request): RedirectResponse
  24. {
  25. $request->user()->fill($request->validated());
  26. if ($request->user()->isDirty('email')) {
  27. $request->user()->email_verified_at = null;
  28. }
  29. $request->user()->save();
  30. return Redirect::route('profile.edit')->with('status', 'profile-updated');
  31. }
  32. /**
  33. * Delete the user's account.
  34. */
  35. public function destroy(Request $request): RedirectResponse
  36. {
  37. $request->validateWithBag('userDeletion', [
  38. 'password' => ['required', 'current_password'],
  39. ]);
  40. $user = $request->user();
  41. Auth::logout();
  42. $user->delete();
  43. $request->session()->invalidate();
  44. $request->session()->regenerateToken();
  45. return Redirect::to('/');
  46. }
  47. }