isset Belki birinin işine yarar diye paylaşayım. Rastgele kullanıcı adı oluşturur, veri tabanında varsa benzersiz oluncaya kadar tekrar oluşturur:
function generateUsername(?string $username = null): string
{
$faker = Faker\Factory::create();
if (is_null($username)) {
$username = $faker->userName();
}
$validator = Validator::make([
'username' => $username
], [
'username' => [
'required', 'string', 'regex:/^[0-9A-Za-z.\-_]+$/u', 'min:8', 'max:50', 'unique:users',
],
]);
return $validator->fails()
? generateUsername($faker->userName())
: $username;
}
Mesela
$names = [];
for($i = 0; $i < 10; $i++) {
$names[] = generateUsername();
}
/*
[
"dkovacek",
"dylan.carter",
"klocko.renee",
"susana.nicolas",
"chester19",
"hollie13",
"mayra.leffler",
"jarrell.weissnat",
"kendrick31",
"marilou.jerde",
]
*/
İsterseniz yöntemden faker'ı çıkarıp kendi mantığınızı ekleyebilirsiniz; sonuna sayı ekleme, rastgele ifade ekleme vs...