gpt4 book ai didi

php - 在 Laravel 8.x 中循环嵌套注释

转载 作者:行者123 更新时间:2023-12-04 07:24:59 26 4
gpt4 key购买 nike

在 Laravel 8.x 中,我正在尝试创建一个允许您回复评论的博客评论系统。如果回复评论,评论会被分配一个 parent_id这是 id他们正在回复的评论。目前,当我用回复循环评论时,它只会输出一个深度为 1 个循环的回复,如下例所示:
问题的当前示例:
用户 1:随机发布 1..
> 用户 2:此文本是对用户 1 的帖子 1 的回复
用户 6:随机发布 2..
用户 7:随机发布 3..

我正在努力实现的目标:
用户 1:随机发布 1..
> 用户 2:此文本是对用户 1 的帖子 1 的回复
>> 用户 3:此文本是对用户 2 的帖子 1 的回复
>>> 用户 4:此文本是对用户 3 的帖子 1 的回复
>>> 用户 5:此文本是对用户 3 的帖子 1 的回复
用户 6:随机发布 2..
用户 7:随机发布 3..
我当前的代码
模型:

class PostComment extends Model
{
use HasFactory;

public function replies()
{
return $this->hasMany($this, 'parent_id');
}
}
刀刃:
@foreach ($comments as $comment)

<p> {{ $comment->user->name }} : {{ $comment->comment }} </p>

@foreach ($comment->replies as $reply)

<p> {{ $reply->user->name }} : {{ $reply->comment }} </p>

@endforeach

@endforeach
现在,如果我添加 @foreach ($comment->replies as $reply)在评论循环中 4 次,它将显示回复.. 但当然这不切实际,因为对评论可以有无限的回复。我希望你能理解我想要表达的意思,我非常不擅长解释事情。
任何帮助真的很感激:)

最佳答案

创建两个 Blade 文件

  • comment-list.blade.php
  • child-comment-list.blade.php

  • 评论列表.blade.php 文件
    @if(count((array)$comments))
    @foreach ($comments as $comment)

    <p> {{ $comment->user->name }} : {{ $comment->comment }} </p>

    @include('child-comment-list',['comments'=>$comment->replies])

    @endforeach
    @endif

    child-comment-list.blade.php 文件
    @if(count((array)$comments))
    @foreach($comments as $comment)

    <p> {{ $comment->user->name }} : {{ $comment->comment }} </p>
    @if(count((array)$comment->replies))

    @include('child-comment-list',['comments'=>$comment->replies])

    @endif
    @endforeach
    所以在你当前的文件中
    @include('comment-list',['comments'=>$comments]);

    关于php - 在 Laravel 8.x 中循环嵌套注释,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68265784/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com