使用工廠類(lèi)進(jìn)行填充數(shù)據(jù)時(shí),您可以在插入記錄后提供回調(diào)函數(shù)來(lái)執(zhí)行某種操作。
$factory->afterCreating(App\User::class, function ($user, $faker) {
$user->accounts()->save(factory(App\Account::class)->make());
});
// 創(chuàng)建用戶(hù)后,關(guān)聯(lián)創(chuàng)建對(duì)應(yīng)賬戶(hù)數(shù)據(jù)
你是否知道偽造類(lèi) (Faker) 不僅可以生成文本值,還可以生成圖像?看此處的 avatar
字段,它將生成一個(gè) 50x50 的圖像:
$factory->define(User::class, function (Faker $faker) {
return [
'name' => $faker->name,
'email' => $faker->unique()->safeEmail,
'email_verified_at' => now(),
'password' => bcrypt('password'),
'remember_token' => Str::random(10),
'avatar' => $faker->image(storage_path('images'), 50, 50)
];
});
當(dāng)使用工廠類(lèi)創(chuàng)建記錄時(shí),可以使用序列類(lèi) (Sequence) 來(lái)輸入自定義邏輯并將值覆蓋。
$users = User::factory()
->count(10)
->state(new Sequence(
['admin' => 'Y'],
['admin' => 'N'],
))
->create();
更多建議: