/** * @param $platform * @param $openId * @param $platformInfo */ public static function createWithPlatform($platform, $openId, $platformInfo) { \DB::transaction(function () use($platform, $openId, $platformInfo) { // create user $user = self::create(); // create user info $userInfo = new UserInfo(); $userInfo->nickname = 'MM' . substr($openId, 0, 6); $userInfo->user()->associate($user); $userInfo->save(); // create user token $userToken = new UserToken(); $userToken->platform = $platform; $userToken->open_id = $openId; $userToken->platform_info = $platformInfo; $userToken->user()->associate($user); $userToken->save(); }); }