2016-01-23 65 views
5

我想在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

你尝试过使用键值数组中创建,如:'工厂(用户::类) - >创建(['role_id'=> 2]);' – jakehallas

+1

OMG太愚蠢了!请把它作为答案! –

+0

我有同样的问题,我花了大约2分钟注意到'create'的数组参数中的'=>'而不是'''。 – anpel

回答

13

你尝试使用键值数组中的create方法:

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

1

我可能会迟到了,我有同样的问题,事实证明它,因为我提供的一键无数组中的值返回。

摆脱'provider' => ''

至于我真的不知道这个问题的原因,但它是与碳

+1

对我来说,它是通过'protected $ dateFormat ='Y-m-d H:i:sO';'提供的日期格式,它与列格式不匹配是因为迁移过度。碳不喜欢这样,并抛出“数据缺失”的错误。 – luchaos