laravel 如何生成一个独特的假电子邮件与faker自定义域?

z31licg0  于 2023-02-17  发布在  其他
关注(0)|答案(3)|浏览(123)

我有一个laravel应用程序,要求注册用户必须使用他们的公司电子邮件(自定义域)。
那么我怎样才能用faker生成器来测试我的模型工厂呢?

d8tt03nd

d8tt03nd1#

你可以使用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),
    ];
});
kpbpu008

kpbpu0082#

您可以使用 Faker\Generator 创建一个辅助变量:

$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,
        // ...
    ];
});
nwlls2ji

nwlls2ji3#

另一个选项可能类似于

$email = $faker->userName().'@mydomain.com';

相关问题