概要
テストを実装している時に一対一、または一対多のテーブルの情報があり、リレーション先のデータごとまとめてFactory
で作成したい時の方法をメモします。
例えば特定のUserと紐づいたPostを作成したいときなどに使えます。
ここではファクトリでのテストデータ作成方法には触れません。
環境
Laravel v8.12
実装
一対多テーブル
User→一
Post→多
Userからアクセス
Test.php
$user = User::factory()->has(Post::factory())->create();
Postの数を指定することもできます。
Test.php
$user = User::factory()->has(Post::factory()->count(3))->create();
Postからアクセス
.php
$posts = Post::factory()->count(3)
->for(User::factory()->state([
'name' => 'hogehoge',
]))