如何使用伪造者的自定义域生成唯一的伪造电子邮件?

Ram*_*mer 1 php faker laravel laravel-5

我有一个laravel应用程序,要求注册用户必须使用他们的公司电子邮件(自定义域)。

那么,我如何通过造假者生成的模型在模型工厂中对其进行测试呢?

Ram*_*mer 7

您可以通过php preg_replace函数使用一个简单的技巧:

preg_replace('/@example\..*/', '@domain.com', $faker->unique()->safeEmail)

因此您的laravel模型工厂可能看起来像这样:

$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),
    ];
});
Run Code Online (Sandbox Code Playgroud)