3

私はこれのうさぎの穴のかなり深いところにいます。この質問は、実際には、Laravel アプリを正しく機能させることに関連するより大きな質問の一部です。私のトラブルについて詳しく知りたい場合は、他の質問へのリンクを次に示します: Model, Database Error in Laravel

そこで、データベース シーダー パッケージである Faker を使用して、データベースにデータを追加しようとしています。正しくインストールしましたが、User テーブルを超えて機能させるのに問題があります。UserTableSeeder の内容は次のとおりです。

class UserTableSeeder extends Seeder {

  public function run()
  {
    $faker = Faker\Factory::create();

    for ($i = 0; $i < 100; $i++)
    {
        User::create(
            [
                'id' => $faker->randomDigit,
                'first_name' => $faker->firstName,
                'last_name' => $faker->lastName,
                'email' => $faker->freeEmail,
                'notify' => $faker->randomElement($array = ['y', 'n']),
                'created_at' => $faker->dateTime($max = 'now'),
                'updated_at' => $faker->dateTime($max = 'now')
            ]
        );
    }
  }
}

実行すると、これは半分機能していますphp artisan db:seed。数十行ほどしか作成されません。ユーザー テーブルには 7 つの列があります。

id (型は整数)、
first_name(varchar)、
last_name(varchar)、
email(varchar)、
notify(enum)、
created_at(timestamp)、
updated_at(timestamp)

これを正しく処理するか、同様のテーブルのテンプレートとして機能するコードは、非常に高く評価されます。ありがとうございます。

4

2 に答える 2

2

'id' => $faker->randomDigit競合する ID を引き起こしている可能性があります (桁数は 10 桁あるため、12 行ではなく 10 行になると思います)。$faker->randomNumber代わりに試してください。

于 2014-12-15T22:35:10.433 に答える
0

移行: $table->increments('id');

これにより、ID に値を設定する必要がなくなり、ID の衝突を回避できます。

于 2015-11-18T14:31:06.350 に答える