-
Notifications
You must be signed in to change notification settings - Fork 9
GeneratesUsernames Trait
Sam Taylor edited this page Aug 2, 2022
·
1 revision
The GeneratesUsernames trait is super useful to get you up and running quickly.
Include it in your model:
use TaylorNetwork\UsernameGenerator\FindSimilarUsernames;
use TaylorNetwork\UsernameGenerator\GeneratesUsernames;
class User
{
use FindSimilarUsernames;
use GeneratesUsernames;
}You can override the config by adding a generatorConfig method to your model.
use TaylorNetwork\UsernameGenerator\FindSimilarUsernames;
use TaylorNetwork\UsernameGenerator\GeneratesUsernames;
use TaylorNetwork\UsernameGenerator\Generator;
class User
{
use FindSimilarUsernames;
use GeneratesUsernames;
public function generatorConfig(Generator &$generator): void
{
$generator->setConfig([
'separator' => '_',
]);
}
}The generatorConfig method gets the instance of the Generator method to be used for this class, passed by reference.
To modify any input before sending it to the generator, create a getField method.
use TaylorNetwork\UsernameGenerator\FindSimilarUsernames;
use TaylorNetwork\UsernameGenerator\GeneratesUsernames;
class User
{
use FindSimilarUsernames;
use GeneratesUsernames;
protected $fillable = [
'first_name',
'last_name',
];
public function getField(): ?string
{
return $this->first_name . ' ' . $this->last_name;
}
}In this example, if your user model has a separate first and last name, you can use the getField method to combine them and it will send to the generator.
If your model is going to use a different field name than the default, you can either use the field map config to update or add a generatorFieldName method to your model.
use TaylorNetwork\UsernameGenerator\FindSimilarUsernames;
use TaylorNetwork\UsernameGenerator\GeneratesUsernames;
class User
{
use FindSimilarUsernames;
use GeneratesUsernames;
protected $fillable = [
'fullName',
];
public function generatorFieldName(): string
{
return 'fullName';
}
}