Tengo una aplicación laravel que requiere que los usuarios registrados usen el correo electrónico de su empresa (dominio personalizado).
Entonces, ¿cómo puedo lograr eso con generadores falsos para probarlo con mis fábricas de modelos?
Puede usar un truco simple con la función preg_replace de php:
preg_replace('/@example\..*/', '@domain.com', $faker->unique()->safeEmail)
por lo que su fábrica de modelos de laravel podría verse así:
$factory->define(App\User::class, function (Faker\Generator $faker) { static $password; return [ 'name' => $faker->name, 'email' => preg_replace('/@example\..*/', '@domain.com', $faker->unique()->safeEmail), 'password' => $password ?: $password = bcrypt('secret'), 'avatar' => $faker->imageUrl, 'remember_token' => str_random(10), ]; });Puede usar Faker\Generator para crear variables auxiliares:
$factory->define(App\User::class, function (Faker\Generator $faker) { $userName = $faker->userName; $uniqueSuffix = $faker->unique()->word; $domain = 'your.domain.com'; $uniqueFakeEmail = "$userName.$uniqueSuffix@$domain"; return [ 'email' => $uniqueFakeEmail, // ... ]; });