0

我有一个名称列表$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' => '$2y$10$92IXUNpkjO0rOQ5byMi.Ye4oKoEa3Ro9llC/.og/at2.uheWG/igi', // password
        'remember_token' => Str::random(10),
    ];
});
4

1 回答 1

2

您始终可以创建一个私有方法,当您遍历数组中的每个名称时调用该方法。

$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' => '$2y$10$92IXUNpkjO0rOQ5byMi.Ye4oKoEa3Ro9llC/.og/at2.uheWG/igi', // password
        'remember_token' => Str::random(10),
    ];
}

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

于 2019-11-27T16:49:17.310 回答