diff --git a/app/Endpoint/Api/Http/Controllers/Auth/RegisterController.php b/app/Endpoint/Api/Http/Controllers/Auth/RegisterController.php index 54a9b345..2f088fc0 100644 --- a/app/Endpoint/Api/Http/Controllers/Auth/RegisterController.php +++ b/app/Endpoint/Api/Http/Controllers/Auth/RegisterController.php @@ -47,18 +47,15 @@ class RegisterController extends Controller try { DB::beginTransaction(); - $user = new User($input); - $user->phone_verified_at = $time; - $user->register_ip = $ip; - $user->last_login_at = $time; - $user->last_login_ip = $ip; - $user->setCreatedAt($time); - $user->setUpdatedAt($time); - $user->save(); - - $user->userInfo()->create([ - 'inviter_id' => $inviter?->id, - ]); + $user = User::create( + array_merge($input, [ + 'phone_verified_at' => $time, + 'register_ip' => $ip, + 'last_login_at' => $time, + 'last_login_ip' => $ip, + ]), + $inviter + ); DB::commit(); } catch (Throwable $e) { diff --git a/app/Models/User.php b/app/Models/User.php index 3e2c2e00..c4c35b67 100644 --- a/app/Models/User.php +++ b/app/Models/User.php @@ -108,4 +108,22 @@ class User extends Model implements AuthorizableContract, AuthenticatableContrac 'token' => $this->createToken($device ?: Device::PC)->plainTextToken, ]; } + + /** + * 创建用户 + * + * @param array $attributes + * @param self|null $inviter + * @return self + */ + public static function create(array $attributes = [], ?self $inviter = null): self + { + $user = static::query()->create($attributes); + + $user->userInfo()->create([ + 'inviter_id' => $inviter?->id, + ]); + + return $user; + } }