12

我正在尝试使用 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();

我没有更多的错误。但我真的需要播种不同类型的用户......

任何想法???

4

4 回答 4

35

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

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

于 2016-01-23T16:58:03.313 回答
4

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

摆脱'provider' => ''

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

于 2017-03-02T19:34:31.327 回答
1

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

那就是我有 Model::create([form inputs]);

而不是 Model::create(request([form inputs]);

以防有人遇到它。

于 2019-06-09T08:35:23.223 回答
1

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

就我而言,我有专栏email_verified_at [timestamp]。我错过了理解我放了一个字符串company@example.com而不是日期值,它应该是now()

于 2019-12-06T04:33:38.623 回答