我有一个laravel应用程序,要求注册用户必须使用他们的公司电子邮件(自定义域)。那么我怎样才能用faker生成器来测试我的模型工厂呢?
d8tt03nd1#
你可以使用php的preg_replace函数的一个简单技巧:preg_replace('/@example\..*/', '@domain.com', $faker->unique()->safeEmail)所以你的laravel模型工厂可能看起来像这样:
preg_replace
preg_replace('/@example\..*/', '@domain.com', $faker->unique()->safeEmail)
$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), ]; });
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, // ... ]; });
nwlls2ji3#
另一个选项可能类似于
$email = $faker->userName().'@mydomain.com';
3条答案
按热度按时间d8tt03nd1#
你可以使用php的
preg_replace
函数的一个简单技巧:preg_replace('/@example\..*/', '@domain.com', $faker->unique()->safeEmail)
所以你的laravel模型工厂可能看起来像这样:
kpbpu0082#
您可以使用 Faker\Generator 创建一个辅助变量:
nwlls2ji3#
另一个选项可能类似于