如何为 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),
    ];
}

因此您的用户将按照您希望的顺序创建。