I am trying to write a test case in Laravel. I have found here how to create dummy data for a many to many relation between two models. But I could not find how to add attributes to the pivot table.
Here an example:
We have a model user
and a model car
. Each user can drive multiple cars, each car can be driven by multiple users and we want to capture how much miles each user drove with each car.
users
table
id | name
1 | Bob
2 | Alice
cars
table
id | name
1 | Red Car
2 | Blue Car
car2user
relation table
id_user | id_car | miles
1 | 1 | 20
2 | 2 | 4
How can I create such a test case? I tried
$user = factory(\App\User::class)->create(['name' => 'Bob'])->first();
$user->cars()->save(factory(\App\Car::class)->create(['name' => 'Red Car']));
But this raises the error:
General error: 1364 Field 'miles' doesn't have a default value
I accept this error message, because I did not specify anywhere the value for the mandatory field miles
. But where can I provide that value?