【发布时间】:2019-08-30 11:09:00
【问题描述】:
我想在删除帖子时删除所有相关数据。当我删除此帖子时,所有与此帖子相关的 cmets 喜欢和所有通知也会被删除。我怎样才能做到这一点 ?当用户删除他所有的帖子、存储桶、cmets 时,我会这样做,并且报告的用户也会被删除。这是此代码。但我也想删除所有与帖子相关的内容,如通知、点赞等。请帮忙。
public function destroy($id)
{
$user = User::find($id);
$user->posts()->forceDelete();
$user->buckets()->forceDelete();
$user->comments()->forceDelete();
$user->reportedUser()->forceDelete();
$user->forceDelete();
return redirect()->route('users.index')->with('Success','User Deleted Successfully');
}
当用户被删除时,此代码会删除与用户相关的所有内容,但我也想删除与帖子相关的所有内容。我该怎么做?
【问题讨论】:
-
能否添加
Post模型,以便我们查看与帖子相关的内容。 -
为什么没有在迁移时设置
->onDelete('cascade')?检查here -
$table->foreign('user_id') ->references('id') ->on('users') ->onDelete('cascade'); $table->foreign('bucket_id') ->references('id') ->on('buckets') ->onDelete('cascade');
-
我在删除级联时使用@JulienMetral
-
在我的帖子模型用户中,bucket 和 cmets 相关 @thisiskelvin