/** * @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(); }); }
| Model Factories |-------------------------------------------------------------------------- | | Here you may define all of your model factories. Model factories give | you a convenient way to create models for testing and seeding your | database. Just tell the factory how a default model should look. | */ use App\Entity\Comment; use App\Entity\Image; use App\Entity\Post; use App\Entity\PostCategory; use App\Entity\User; use App\Entity\UserInfo; $factory->define(User::class, function (Faker\Generator $faker) { return ['mobile' => '181' . mt_rand(10000000, 99990000), 'password' => bcrypt('123456')]; }); $factory->define(UserInfo::class, function (Faker\Generator $faker) { return ['user_id' => function () { return factory(User::class)->create()->id; }, 'avatar' => $faker->imageUrl(100, 100), 'nickname' => $faker->name]; }); $factory->define(Post::class, function (Faker\Generator $faker) { return ['content' => $faker->paragraph(3), 'post_category_id' => PostCategory::all()->random()->id, 'user_id' => UserInfo::all()->random()->user_id]; }); $factory->define(Image::class, function (Faker\Generator $faker) { return ['url' => $faker->imageUrl(200, 200), 'imageable_id' => Post::all()->random()->id, 'imageable_type' => Post::class]; }); $factory->define(Comment::class, function (Faker\Generator $faker) { return ['content' => $faker->paragraph(2), 'user_id' => UserInfo::all()->random()->user_id, 'post_id' => 1]; });