找不到四位数的年份数据丢失

A four digit year could not be found Data missing

我正在尝试使用 Laravel 5.2

中的工厂播种

我的代码死于用户工厂:

$factory->define(App\User::class, function (Faker\Generator $faker) {
$countries = Countries::all()->pluck('id')->toArray();

return [
    'name' => $faker->name,
    'email' => $faker->email,
    'password' => bcrypt(str_random(10)),
    'grade_id' => $faker->numberBetween(1, 5),
    'country_id' => $faker->randomElement($countries),
    'city' => $faker->city,
    'latitude' => $faker->latitude,
    'longitude' => $faker->longitude,
    'role_id' => $faker->numberBetween(1, 3),
    'verified' => true,
    'remember_token' => str_random(10),
    'provider' => '',
    'provider_id' => str_random(5)

];
});

给我这个错误:

A four digit year could not be found   Data missing

我找到了原因,但不知道如何解决。

我给工厂打电话的时候是这样称呼的:

    factory(User::class)->create(['role_id',2]);

如果我这样称呼它:

    factory(User::class)->create();

我没有再收到错误。 但我真的需要培养不同类型的用户...

有什么想法吗???

您是否尝试过在 create 方法中使用键值数组:

factory(User::class)->create(['role_id' => 2]);

我可能迟到了,我遇到了同样的问题,结果是因为我在返回的数组中提供了一个没有值的键。

去掉'provider' => ''.

至于问题的原因我真的不知道,但它与Carbon有关

我在使用批量分配时遇到了同样的问题,结果我忘记了将我的输入数组包装在请求辅助函数中

那是我有 Model::create([表单输入]);

而不是 Model::create(请求([表单输入]);

以防有人遇到它。

我最近遇到了同样的问题,最近我发现唯一的问题是我在时间戳列类型中输入了一个无效值

在我的例子中,我有 email_verified_at [timestamp] 列。我想念我把 company@example.com 这样的字符串而不是 日期值 ,它应该是 now().