Laravel 5.1 でデータベースの移行とシード処理を使用しています。
移行
public function up()
{
Schema::create('teachers', function (Blueprint $table) {
$table->increments('id');
$table->integer('user_id')->unsigned();
$table->integer('teacher_id')->unsigned();
$table->boolean('disable')->default(0);
$table->timestamps();
$table->unique(['user_id', 'teacher_id']);
$table->foreign('user_id')->references('id')->on('users')->onDelete('cascade');
$table->foreign('teacher_id')->references('id')->on('users')->onDelete('cascade');
});
}
*** user_id と teacher_id は共に一意である必要があります。
モデル工場
$factory->define(App\Teacher::class, function ($faker) {
return [
'user_id' => $faker->numberBetween(1, 59),
'teacher_id' => $faker->numberBetween(1, 59),
];
});
500 のティーチャー リレーショナルを生成するためのシーダーをセットアップしましたDatabaseSeeder.php
。
factory(App\Teacher::class, 500)->create();
しかし、私はこのエラーが発生しました:
[PDOException]
SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '10-11' for key 'teachers_user_id_teacher_id_
unique'
ご覧のとおり、*** (一意のプロパティ) が原因でエラーが発生しました。それを修正する方法はありますか?あなたの考えは?