0

というusers名前のテーブルと 1 対多の関係にあるテーブルがありますvideos。データの整合性を失うことなく、2 つのテーブルをシードしたいと考えています。これは私が以下にしたことです:

$factory->define(App\User::class, function (Faker\Generator $faker) {
return [
    'name' => $faker->name,
    'email' => $faker->email,
    'username' => $faker->unique()->userName
];
});

$factory->define(App\Video::class, function(Faker\Generator $faker){
    $user = factory(App\User::class)->create();
    return [
        'title' => $faker->city,
        'link' => $faker->domainName,
        'user_id' => $user->id,
        'description' => $faker->sentence(40)
    ];
});

だから今私がしなければならないのは、VideoTableSeeder私が望む量を作成して実行することだけです. 自分の扱い方が下手な気がするので、もっといい方法を知りたいです。特に、動画は同じ量ではなくユーザー数を増やしたいと思っています。私が行ったものでは、それらはすべて同じ量になります。

4

1 に答える 1

0

ドキュメントのモデルへのリレーションの追加のセクションをチェックアウトしてください

モデルへの関係の追加

複数のモデルをデータベースに永続化することもできます。この例では、作成したモデルにリレーションを添付します。create メソッドを使用して複数のモデルを作成すると、Eloquent コレクション インスタンスが返され、コレクションによって提供される便利な関数を使用できるようになります。

$users = factory(App\User::class, 3) ->create() ->each(function($u) { $u->posts()->save(factory(App\Post::class)->make()); });

于 2016-01-28T15:34:03.943 に答える