RegisterController.php 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117
  1. <?php
  2. namespace App\Http\Controllers\Auth;
  3. use App\User;
  4. use App\Http\Controllers\Controller;
  5. use App\UserDetail;
  6. use Carbon\Carbon;
  7. use Illuminate\Auth\Events\Registered;
  8. use Illuminate\Http\Request;
  9. use Illuminate\Support\Facades\Auth;
  10. use Illuminate\Support\Facades\Hash;
  11. use Illuminate\Support\Facades\Validator;
  12. use Illuminate\Foundation\Auth\RegistersUsers;
  13. use Illuminate\Support\Str;
  14. class RegisterController extends Controller
  15. {
  16. /*
  17. |--------------------------------------------------------------------------
  18. | Register Controller
  19. |--------------------------------------------------------------------------
  20. |
  21. | This controller handles the registration of new users as well as their
  22. | validation and creation. By default this controller uses a trait to
  23. | provide this functionality without requiring any additional code.
  24. |
  25. */
  26. use RegistersUsers;
  27. /**
  28. * Where to redirect users after registration.
  29. *
  30. * @var string
  31. */
  32. protected $redirectTo = '/home';
  33. /**
  34. * Create a new controller instance.
  35. *
  36. * @return void
  37. */
  38. public function __construct()
  39. {
  40. // $this->middleware('auth');
  41. }
  42. /**
  43. * Get a validator for an incoming registration request.
  44. *
  45. * @param array $data
  46. * @return \Illuminate\Contracts\Validation\Validator
  47. */
  48. protected function validator(array $data)
  49. {
  50. return Validator::make($data, [
  51. 'name' => ['required', 'string', 'max:255', 'unique:users'],
  52. 'email' => ['required', 'string', 'email', 'max:255', 'unique:users'],
  53. 'password' => ['required', 'string', 'min:6', 'confirmed'],
  54. ]);
  55. }
  56. /**
  57. * Create a new user instance after a valid registration.
  58. *
  59. * @param array $data
  60. * @return \App\User
  61. */
  62. protected function create(array $data)
  63. {
  64. return User::create([
  65. 'name' => $data['name'],
  66. 'email' => $data['email'],
  67. 'password' => Hash::make($data['password']),
  68. ]);
  69. }
  70. public function register(Request $request)
  71. {
  72. $headTo=$request->input('headTo')??'';
  73. $this->validator($request->all())->validate();
  74. event(new Registered($user = $this->create($request->all())));
  75. $phone=$request->input('phone');
  76. if ($phone) UserDetail::query()->create([
  77. 'user_id'=>$user['id'],
  78. 'full_name'=>$user['name'],
  79. 'mobile_phone'=>$phone,
  80. 'created_at'=>Carbon::now()->toDateTimeString(),
  81. 'updated_at'=>Carbon::now()->toDateTimeString(),
  82. ]);
  83. $rolesIds=$request->input('role')??'';
  84. if($rolesIds){
  85. $roleIdArr=explode(',',$rolesIds);
  86. $user->roles()->sync($roleIdArr);
  87. }
  88. $supplierIds=$request->input('supplier')??'';
  89. if($supplierIds){
  90. $supplierIdArr=explode(',',$supplierIds);
  91. $user->suppliers()->sync($supplierIdArr);
  92. }
  93. // $this->guard()->login($user);
  94. $carrierIds=$request->input('carrier')??'';
  95. if ($carrierIds){
  96. $carrierIds=explode(',',$carrierIds);
  97. $user->logistics()->sync($carrierIds);
  98. }
  99. $userWorkgroupId=$request->input('userWorkgroupID');
  100. if ($userWorkgroupId){
  101. $user->userWorkgroups()->sync([$userWorkgroupId]);
  102. }
  103. app('LogService')->log(__METHOD__,__FUNCTION__,json_encode($request->toArray()),$user['id']);
  104. if($headTo){return redirect(url($headTo))->with('successTip',"录入用户 {$user->name} 成功");}
  105. return $this->registered($request, $user)
  106. ?: redirect($this->redirectPath());
  107. }
  108. }