Schema::table('posts', function (Blueprint $table) {
$table->integer('user_id')->unsigned();
$table->foreign('user_id')->references('id')->on('users')->onDelete('cascade')
});
Run Code Online (Sandbox Code Playgroud)
这是否意味着如果我删除帖子,用户也将被删除或者是否意味着如果我删除用户,他们的所有帖子都将被删除?
M.E*_*wan 38
简短的回答是:在您的情况下,如果您删除了a user,则与他相关的所有帖子也将被删除.
onDelete('cascade');只需ON DELETE CASCADE向数据库添加规则,该规则指定在删除父数据时删除子数据.
注意:处理错字(双分号)
$table->foreign('user_id')->references('id')->on('users')->onDelete('cascade');
您正在讨论的代码创建了另一个表上的列的外键/引用.这onDelete('cascade')意味着当删除行时,它将删除所有它的引用和附加数据.
例如,如果您有一个具有Post的用户并且您在用户上设置了onDelete('cascade'),那么当用户删除他的帐户时,所有帖子也将被删除.
您可以在Laravel优秀文档中找到更多信息.