【问题标题】:Faker Package, Database Seeder IssuesFaker 包,数据库种子问题
【发布时间】:2015-02-14 03:48:35
【问题描述】:

我对这个兔子洞非常了解。这个问题实际上是与让我的 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(它的类型是整数),
名字(varchar),
姓氏(varchar),
电子邮件(varchar),
通知(枚举),
created_at(时间戳),
和 updated_at(timestamp)

任何能够正确处理此问题或用作类似表格模板的代码将不胜感激。谢谢各位。

【问题讨论】:

    标签: php database laravel eloquent faker


    【解决方案1】:

    'id' =&gt; $faker-&gt;randomDigit 可能会导致 ID 冲突(我敢打赌你得到十行,而不是十行,因为有十个可能的数字)。请改用$faker-&gt;randomNumber

    【讨论】:

    • 我不得不运行php artisan db:seed 几次,但该解决方案已经奏效。我还有三个需要填充的表,所以我可能很快就会回到这个。
    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-07-13
      • 1970-01-01
      • 1970-01-01
      • 2016-05-04
      • 2019-12-31
      • 1970-01-01
      相关资源
      最近更新 更多