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