Laravel - Seeding Relationships

前端 未结 6 522
感情败类
感情败类 2020-12-07 14:58

In Laravel, database seeding is generally accomplished through Model factories. So you define a blueprint for your Model using Faker data, and say how many instances you ne

6条回答
  •  借酒劲吻你
    2020-12-07 15:37

    $factory->define(App\User::class, function (Faker\Generator $faker) {
        return [
            'name' => $faker->name,
            'email' => $faker->email,
            'password' => bcrypt(str_random(10)),
            'remember_token' => str_random(10),
        ];
    });
    
    $factory->define(App\Post::class, function (Faker\Generator $faker) {
        return [
            'name' => $faker->name,
            'body' => $faker->paragraph(1),
            'user_id' => factory(App\User::class)->create()->id,
        ];
    });
    

    So now if you do this factory(App\Post::class, 4)->create() it will create 4 different posts and in the process also create 4 different users.

    If you want the same user for all the posts what I usually do is:

    $user = factory(App\User::class)->create();
    $posts = factory(App\Posts::class, 40)->create(['user_id' => $user->id]);
    

提交回复
热议问题