如何为 Laravel 工厂使用自定义值列表,维护订单并仍在使用 Faker 外观?
Posted
技术标签:
【中文标题】如何为 Laravel 工厂使用自定义值列表,维护订单并仍在使用 Faker 外观?【英文标题】:How to use a custom list of values for a Laravel factory, maintaing order and still using the Faker facade? 【发布时间】:2020-03-23 05:49:07 【问题描述】:我有一个名称列表 $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),
];
);
【问题讨论】:
【参考方案1】:您始终可以创建一个私有方法,当您遍历数组中的每个名称时调用该方法。
$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),
];
因此您的用户将按照您希望的顺序创建。
【讨论】:
以上是关于如何为 Laravel 工厂使用自定义值列表,维护订单并仍在使用 Faker 外观?的主要内容,如果未能解决你的问题,请参考以下文章
Laravel 8 在模型工厂中定义 belongsToMany 定义
使用 PyQT,如何为带有自定义列表的 QComboBox 过滤 mousePressEvent