在Laravel中删除包含所有相关评论的帖子?

时间:2016-03-24 17:16:39

标签: php laravel

我的网站上有一个问题,真的让我感到烦恼..我用laravel创建了一个博客。在我的博客中,您可以创建一个线程并在您或其他用户线程下进行注释。在我完成评论功能后,删除线程'功能不再有用了。我为这个错误搜索了很多,直到我决定创建一个新的数据库。这次我设置了我需要的所有外键,例如:ON DELETE CASCADE。在我手动删除线程之前,因为我有一条sql错误消息,因为外键原因我无法删除线程。使用我的新数据库,它再次起作用......但不幸的是,我仍然无法从我的网站删除我的一个帖子......在我仔细查看我的错误消息后,我发现了一条错误消息,我的destroycomment方法和我的destroythread方法有问题。

因此,对于测试,我删除了所有重新注释到评论,评论功能和评论路线的html。它奏效了!这意味着2个删除功能存在问题。

所以请看看它,因为我几乎做了我所知道的一切..所以请帮助我!

 public function destroythread($id)
    {
        $thread = Thread::query()->findOrFail($id);
        $thread->delete();
        return redirect(action('Test\\TestController@startpage', [Auth::user()->id]));
    }

 public function destroycomment($id)
    {
        $comment = Comment::query()->findOrFail($id);
        $comment->delete();
        return redirect()->back();
    }

在我的HTML中,我使用了这两个功能! destroycomment函数有效,但destroythread不起作用。我认为原因是,因为如果线程消失了,评论将保留。

编辑:我放弃后的最后一次尝试:

public function destroythread($id)
{
    $thread = Thread::query()->findOrFail($id);
    $comment = Comment::query()->where('thread_id', $id)->get();
    $thread->delete();
    $comment->delete();
    return redirect(action('Test\\TestController@startpage', [Auth::user()->id]));
}

0 个答案:

没有答案