Schema::table('posts', function (Blueprint $table) {
$table->integer('user_id')->unsigned();
$table->foreign('user_id')->references('id')->on('users')->onDelete('cascade')
});
这是否意味着如果我删除帖子,用户也会被删除或者是否意味着如果我删除用户,他们的所有帖子都会被删除?
答案 0 :(得分:29)
简短回答是:在您的情况下,如果您删除了user
,则与其相关的所有帖子也将被删除。
onDelete('cascade');
只是将ON DELETE CASCADE
规则添加到您的数据库中,该规则指定在删除父数据时删除子数据。
注意:处理拼写错误(双分号)
$table->foreign('user_id')->references('id')->on('users')->onDelete('cascade');
答案 1 :(得分:8)
您正在谈论的代码会创建另一个表上的列的外键/引用。 onDelete('cascade')
表示删除行时,它将删除所有引用和附加数据。
例如,如果您的用户有一个帖子并且您在用户上设置了onDelete('cascade'),那么当用户删除他的帐户时,所有帖子也将被删除。
您可以在Laravel excellent documentation找到更多信息。
答案 2 :(得分:4)
这意味着如果您删除链接的“用户”,则与该用户相关联的“帖子”也会自动删除。
答案 3 :(得分:3)
如果您使用的是mysql,请查看documentation。
在您的情况下,这意味着:如果用户被删除,帖子也将被删除。