我正在尝试使用 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' => ''
.
至于问题的原因我真的不知道,但这与碳
我在使用批量分配时遇到了同样的问题,结果我忘记将我的输入数组包装在请求助手函数中
那是我有模型::创建([表单输入]);
而不是模型::创建(请求([表单输入]);
以防万一有人遇到它。
我最近遇到了同样的问题,最近我发现唯一的问题是我在时间戳列类型中放置了一个无效的值。
就我而言,我有第 email_verified_at [timestamp]
列.我想念明白我放了一个像company@example.com
这样的字符串而不是日期值,它应该是now()
.