Laravel factory でカウントアップするデータを作成したい

zumikiti

February 15, 2020

データベースの items テーブルに、id とは別に sort を持つテストデータを作ろうと、factory で以下のように設定した。

$factory->define(Item::class, function (Faker $faker) {
    return [
        'sort' => Item::get()->count() + 1,
    ];
});

しかし、これでは以下のように sort は全て同じになってしまった。

idsort
11
21
31

sort の値を順にあげて登録するには、シーダーで任意に登録するしかなさそうだ。

for ($i=1; $i < 4; $i++) { 
    factory(Item::class)->create([
        'sort' => $i,
    ]);
}