12

Laravel 5.2 でファクトリを使用してシードしようとしています

私のコードは User ファクトリで死にます:

$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 に答える
1

私は最近同じ問題に遭遇しました。最近、タイムスタンプ列 type に無効な値を入れることが唯一の問題であることがわかりました。

私の場合、 column がありますemail_verified_at [timestamp]日付値company@example.comの代わりに次のような文字列を配置したことを理解していません。now()

于 2019-12-06T04:33:38.623 に答える