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()
的工作原理,但要简单一点。请随意在下面添加一个解决方案,并接受它(如果可以)以正确地结束问题。