我的tables
中有2个database
。一个用于Courses
,另一个用于Course Chapters
。
migration
的{{1}}看起来像这样:
courses
Schema::create('courses', function (Blueprint $table) {
$table->bigIncrements('id');
$table->timestamps();
});
的{{1}}看起来像这样:
migration
我希望课程和本章为chapters
,所以当我删除Schema::create('course_chapters', function (Blueprint $table) {
$table->bigIncrements('id');
$table->unsignedInteger('course_id');
$table->timestamps();
});
时,cascade down
也将被删除。
我看到一些使用删除course
的示例,但我从未以chapter
的身份签名。
例如,通常我可以:
foreign key
如何在(最好是)foreign key
中完成此操作,并在$table->dropForeign('course_id');
$table->foreign('course_id')
->references('id')->on('courses')
->onDelete('cascade');
上添加new migration
的内容?
答案 0 :(得分:1)
这应该是在您的course_chapters
桌上:
$table->foreign('course_id')->references('id')->on('courses')->onDelete('cascade');
您不需要添加$table->dropForeign('course_id');
,因为这将从列中删除外键。
注意:以及:
$table->unsignedInteger('course_id');
应该是这样
$table->unsignedBigInteger('course_id');
因为它将引发使用不同数据类型的错误。