如何为 Laravel 工厂使用自定义值列表,维护订单并仍然使用 Faker 门面?
How to use a custom list of values for a Laravel factory, maintaing order and still using the Faker facade?
我有一份名单 $names = ['Adam','Beth,'Chancie','Dale', 'Edward'];
等。我想在 Laravel 工厂或播种机中使用,我不知道是哪个。
基本上,我仍然想对其他所有内容使用 Faker
功能,但提供我自己的自定义名称列表 按照数组中列出的顺序 .
$factory->define(User::class, function (Faker $faker) {
return [
'name' => MY_CUSTOM_LIST_NAME,
'email' => $faker->unique()->safeEmail,
'email_verified_at' => now(),
'password' => 'yIXUNpkjO0rOQ5byMi.Ye4oKoEa3Ro9llC/.og/at2.uheWG/igi', // password
'remember_token' => Str::random(10),
];
});
您始终可以创建一个私有方法,在遍历数组中的每个名称时调用该方法。
$factory->define(User::class, function (Faker $faker) {
foreach($name in $names) {
$this->customFakerMethod($name);
// your logic here ...
}
});
这个函数只是把名字作为参数。
private function customFakerMethod($name)
{
return [
'name' => $name,
'email' => $faker->unique()->safeEmail,
'email_verified_at' => now(),
'password' => 'yIXUNpkjO0rOQ5byMi.Ye4oKoEa3Ro9llC/.og/at2.uheWG/igi', // password
'remember_token' => Str::random(10),
];
}
因此您的用户将按照您希望的顺序创建。
我有一份名单 $names = ['Adam','Beth,'Chancie','Dale', 'Edward'];
等。我想在 Laravel 工厂或播种机中使用,我不知道是哪个。
基本上,我仍然想对其他所有内容使用 Faker
功能,但提供我自己的自定义名称列表 按照数组中列出的顺序 .
$factory->define(User::class, function (Faker $faker) {
return [
'name' => MY_CUSTOM_LIST_NAME,
'email' => $faker->unique()->safeEmail,
'email_verified_at' => now(),
'password' => 'yIXUNpkjO0rOQ5byMi.Ye4oKoEa3Ro9llC/.og/at2.uheWG/igi', // password
'remember_token' => Str::random(10),
];
});
您始终可以创建一个私有方法,在遍历数组中的每个名称时调用该方法。
$factory->define(User::class, function (Faker $faker) {
foreach($name in $names) {
$this->customFakerMethod($name);
// your logic here ...
}
});
这个函数只是把名字作为参数。
private function customFakerMethod($name)
{
return [
'name' => $name,
'email' => $faker->unique()->safeEmail,
'email_verified_at' => now(),
'password' => 'yIXUNpkjO0rOQ5byMi.Ye4oKoEa3Ro9llC/.og/at2.uheWG/igi', // password
'remember_token' => Str::random(10),
];
}
因此您的用户将按照您希望的顺序创建。