RegisterController.php 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. <?php
  2. namespace App\Http\Controllers\Auth;
  3. use App\Http\Controllers\Controller;
  4. use App\Providers\RouteServiceProvider;
  5. use App\Models\User;
  6. use Illuminate\Foundation\Auth\RegistersUsers;
  7. use Illuminate\Support\Facades\Hash;
  8. use Illuminate\Support\Facades\Validator;
  9. use App\Events\SendTweet;
  10. class RegisterController extends Controller
  11. {
  12. /*
  13. |--------------------------------------------------------------------------
  14. | Register Controller
  15. |--------------------------------------------------------------------------
  16. |
  17. | This controller handles the registration of new users as well as their
  18. | validation and creation. By default this controller uses a trait to
  19. | provide this functionality without requiring any additional code.
  20. |
  21. */
  22. use RegistersUsers;
  23. /**
  24. * Where to redirect users after registration.
  25. *
  26. * @var string
  27. */
  28. protected $redirectTo = RouteServiceProvider::HOME;
  29. /**
  30. * Create a new controller instance.
  31. *
  32. * @return void
  33. */
  34. public function __construct()
  35. {
  36. $this->middleware('guest');
  37. }
  38. /**
  39. * Get a validator for an incoming registration request.
  40. *
  41. * @param array $data
  42. * @return \Illuminate\Contracts\Validation\Validator
  43. */
  44. protected function validator(array $data)
  45. {
  46. return Validator::make($data, [
  47. 'name' => ['required', 'string', 'max:255'],
  48. 'email' => ['required', 'string', 'email', 'max:255', 'unique:users'],
  49. 'password' => ['required', 'string', 'min:8', 'confirmed'],
  50. ]);
  51. }
  52. /**
  53. * Create a new user instance after a valid registration.
  54. *
  55. * @param array $data
  56. * @return \App\Models\User
  57. */
  58. protected function create(array $data)
  59. {
  60. $user = User::create([
  61. 'name' => $data['name'],
  62. 'email' => $data['email'],
  63. 'password' => Hash::make($data['password']),
  64. ]);
  65. event(new SendTweet($user));
  66. return $user;
  67. }
  68. }