3

我对这个兔子洞非常了解。这个问题实际上是与让我的 Laravel 应用程序正常运行相关的一个更大问题的一部分。如果您想了解有关我的麻烦的更多信息,请访问另一个问题的链接:Model, Database Error in Laravel

所以,现在我正在尝试使用数据库播种程序包 Faker 来填充我的数据库。我已经正确安装了它,但是我无法让它在用户表之外为我工作。这是我为 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;它只创建十几行左右。我的用户表有七列:

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 冲突(我敢打赌你会得到十行,而不是十行,因为有十个可能的数字)。试试$faker->randomNumber吧。

于 2014-12-15T22:35:10.433 回答
0

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

有了这个,您不需要在 ID 上设置任何值,您将避免 id 冲突

于 2015-11-18T14:31:06.350 回答