Laravel 編碼技巧 Factories

2023-02-16 17:10 更新

工廠回調(diào)

使用工廠類進行填充數(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ù)

生成帶圖像的數(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();


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號