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
So here is my solution:
The example deals with:
Users & Posts (for illustrating One to Many relationships)
// ONE TO ONE relationship (with Users already created)
$factory->define(App\Profile::class, function (Faker\Generator $faker) {
return [
'user_id' => $faker->unique()->numberBetween(1, App\User::count()),
// Rest of attributes...
];
});
// ONE TO MANY relationship (with Users already created)
$factory->define(App\Posts::class, function (Faker\Generator $faker) {
$users = App\User::pluck('id')->toArray();
return [
'user_id' => $faker->randomElement($users),
// Rest of attributes...
];
});