RegisteredUserController.php 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. <?php
  2. namespace App\Http\Controllers\Auth;
  3. use App\Http\Controllers\Controller;
  4. use App\Models\User;
  5. use Illuminate\Auth\Events\Registered;
  6. use Illuminate\Http\RedirectResponse;
  7. use Illuminate\Http\Request;
  8. use Illuminate\Support\Facades\Auth;
  9. use Illuminate\Support\Facades\Hash;
  10. use Illuminate\Validation\Rules;
  11. use Illuminate\Validation\ValidationException;
  12. use Illuminate\View\View;
  13. class RegisteredUserController extends Controller
  14. {
  15. /**
  16. * Display the registration view.
  17. */
  18. public function create(): View
  19. {
  20. return view('auth.register');
  21. }
  22. /**
  23. * Handle an incoming registration request.
  24. *
  25. * @throws ValidationException
  26. */
  27. public function store(Request $request): RedirectResponse
  28. {
  29. $request->validate([
  30. 'login' => ['required', 'string', 'min:6', 'max:255', 'unique:' . User::class],
  31. 'fio' => ['required', 'string', 'regex:/^[а-яА-Яёе ]+$/', 'max:255'],
  32. 'phone' => ['required', 'string', 'max:255'],
  33. 'email' => ['required', 'string', 'lowercase', 'email', 'max:255', 'unique:' . User::class],
  34. 'password' => ['required', 'confirmed', Rules\Password::defaults()],
  35. ], [
  36. 'fio' => 'В поле ФИО могут быть только символы кириллицы и пробелы'
  37. ]);
  38. $user = User::create([
  39. 'login' => $request->login,
  40. 'fio' => $request->fio,
  41. 'phone' => $request->phone,
  42. 'email' => $request->email,
  43. 'password' => Hash::make($request->password),
  44. ]);
  45. event(new Registered($user));
  46. Auth::login($user);
  47. return redirect(route('dashboard', absolute: false));
  48. }
  49. }