Laravel 如何删除评论而不删除回复,将其设置为“已删除评论”?

Laravel 如何删除评论而不删除回复,将其设置为“已删除评论”?,laravel,Laravel,我有一个讨论论坛,我想让用户能够删除他们的评论,但不删除对评论的回复,有没有一种方法可以将其设置为“评论已删除”或“其他”,同时实际删除它 这是我的模型 class ForumReply extends Model { protected $fillable = [ 'user_id', 'bulletin_id', 'comment', 'anonymous' ]; public $timestamps

我有一个讨论论坛,我想让用户能够删除他们的评论,但不删除对评论的回复,有没有一种方法可以将其设置为“评论已删除”或“其他”,同时实际删除它

这是我的模型

class ForumReply extends Model
{
    protected $fillable = [
        'user_id',
        'bulletin_id',
        'comment',
        'anonymous'
    ];

    public $timestamps = true;

    public function discussionForum()
    {
        return $this->belongsTo(DiscussionForum::class);
    }

    public function user()
    {
        return $this->belongsTo(User::class);
    }

    public function replies()
    {
        return $this->hasMany(ForumReply::class, 'parent_id', 'id');
    }
}

如果你想删除某些东西而不实际删除它,<代码>软删除< /代码>是可用的,或者你可以考虑使用布尔标志,当“删除”(术语被删除),但它更多的是“隐藏”动作时,会呈现不同的注释。@Tim Lewis如果我使用软删除,评论实际上什么时候会被删除?它们会被“删除”,因为它们不会出现在你的应用程序中,除非你使用
->withTrashed()
方法,但它们仍然会在你的数据库中,在
处有一列
deleted\u设置为时间戳。如果调用
forceDelete()
,则它们将从数据库中删除。是的,我不会取消设置
parent\u id
,正如您所说,这会将其与父项分离,并且在显示时没有意义。以上是正确的,
->trashed()
是一个
布尔值
,用于确定注释是否已被软删除,您可以使用它来呈现“comment deleted”(注释已删除)而不是注释,但保持结构和关系完整。听起来不错!这就是
softDeletes()
的工作原理,但要简单一点。请随意在下面添加一个解决方案,并接受它(如果可以)以正确地结束问题。