Recently I have been trying to seed my database using Laravel seeding through Model Factories and Faker.
For simple schemas, it is just a breeze to have it working :). H
Here is a solution to make relationships that is way better than assigning random Users, especially if you need to send extra information to this model.
$factory->define(App\Post::class, function (Faker\Generator $faker) {
$user = factory('App\Models\User')->create(['email' => 'email@test.com',]);
// do your relationships here (...)
return [
'user_id' => $user->id,
'title' => $faker->sentence,
'body' => $faker->paragraph,
];
}
And I saw another example with the use of anonymous function
$factory->define(App\Post::class, function (Faker\Generator $faker) {
return [
'user_id' => function () {
return factory(App\User::class)->create()->id;
},
'title' => $faker->sentence,
'body' => $faker->paragraph,
];
}
Source: https://laracasts.com/series/laravel-from-scratch-2017/episodes/22