2016-01-23 31 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