【发布时间】:2016-04-30 04:22:26
【问题描述】:
我正在尝试使用 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();
我没有更多的错误。 但我真的需要培养不同类型的用户......
有什么想法???
【问题讨论】:
-
您是否尝试过在创建时使用键值数组,例如:
factory(User::class)->create(['role_id' => 2]); -
天哪,太愚蠢了!请把它作为答案!
-
我也有同样的问题,我花了大约 2 分钟才注意到
create的数组参数中的=>而不是,。 -
你让我开心@anpel
-
谢谢。我犯了同样的错字。这是一个可怕的错误信息,不是吗?根本没有描述实际问题。
标签: php laravel laravel-seeding