【问题标题】:How to generate a unique fake email with a custom domain with faker?如何使用 faker 生成具有自定义域的唯一虚假电子邮件?
【发布时间】:2017-08-27 17:09:21
【问题描述】:

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

那么我怎样才能使用faker 生成器来实现它以使用我的模型工厂对其进行测试呢?

【问题讨论】:

    标签: php laravel laravel-5 faker


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 2017-10-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-09-03
        • 2017-03-04
        • 1970-01-01
        相关资源
        最近更新 更多