4
0
Fork 0
dcat-admin-user/database/factories/UserFactory.php

56 lines
1.5 KiB
PHP

<?php
namespace Database\Factories;
use Illuminate\Database\Eloquent\Factories\Factory;
use Illuminate\Support\Str;
use Peidikeji\User\Models\User;
class UserFactory extends Factory
{
protected $model = User::class;
/**
* Define the model's default state.
*
* @return array<string, mixed>
*/
public function definition()
{
$faker = $this->faker;
do {
$phone = $faker->phoneNumber();
} while (User::where('phone', $phone)->exists());
do {
$username = $faker->userName();
} while (User::where('username', $username)->exists());
$inviter_id = null;
$inviter_path = '-';
$inviter = User::inRandomOrder()->first();
if ($inviter) {
$inviter_id = $inviter->id;
$inviter_path = $inviter->inviter_path.$inviter_id.'-';
}
do {
$invite_code = strtoupper(Str::random(6));
} while (User::where('invite_code', $invite_code)->exists());
return [
'username' => $username,
'gender' => $faker->randomElement(['男', '女', '未知']),
// 123456
'password' => '$2y$10$QAGGjfTDjmgDFrX8LkFZ4e0A4MG.doRc8xoq1Cixf6IbHq7RPRqtq',
'name' => $faker->name(),
'avatar' => 'https://via.placeholder.com/64x64.png',
'invite_code' => $invite_code,
'inviter_id' => $inviter_id,
'inviter_path' => $inviter_path,
'phone' => $phone,
];
}
}