• <legend id='sCAZJ'><style id='sCAZJ'><dir id='sCAZJ'><q id='sCAZJ'></q></dir></style></legend>

      <bdo id='sCAZJ'></bdo><ul id='sCAZJ'></ul>

    1. <i id='sCAZJ'><tr id='sCAZJ'><dt id='sCAZJ'><q id='sCAZJ'><span id='sCAZJ'><b id='sCAZJ'><form id='sCAZJ'><ins id='sCAZJ'></ins><ul id='sCAZJ'></ul><sub id='sCAZJ'></sub></form><legend id='sCAZJ'></legend><bdo id='sCAZJ'><pre id='sCAZJ'><center id='sCAZJ'></center></pre></bdo></b><th id='sCAZJ'></th></span></q></dt></tr></i><div id='sCAZJ'><tfoot id='sCAZJ'></tfoot><dl id='sCAZJ'><fieldset id='sCAZJ'></fieldset></dl></div>
    2. <tfoot id='sCAZJ'></tfoot>

      <small id='sCAZJ'></small><noframes id='sCAZJ'>

      1. laravel eloquent 嵌套评论和回复

        时间:2023-09-23
        <legend id='L6oQC'><style id='L6oQC'><dir id='L6oQC'><q id='L6oQC'></q></dir></style></legend>

            <bdo id='L6oQC'></bdo><ul id='L6oQC'></ul>

            <small id='L6oQC'></small><noframes id='L6oQC'>

          • <tfoot id='L6oQC'></tfoot>
              <i id='L6oQC'><tr id='L6oQC'><dt id='L6oQC'><q id='L6oQC'><span id='L6oQC'><b id='L6oQC'><form id='L6oQC'><ins id='L6oQC'></ins><ul id='L6oQC'></ul><sub id='L6oQC'></sub></form><legend id='L6oQC'></legend><bdo id='L6oQC'><pre id='L6oQC'><center id='L6oQC'></center></pre></bdo></b><th id='L6oQC'></th></span></q></dt></tr></i><div id='L6oQC'><tfoot id='L6oQC'></tfoot><dl id='L6oQC'><fieldset id='L6oQC'></fieldset></dl></div>

                    <tbody id='L6oQC'></tbody>
                1. 本文介绍了laravel eloquent 嵌套评论和回复的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

                  问题描述

                  几天前,我看到一个网站,用户可以在其中评论帖子.其他用户可以回复.并且重播可以有像下面的示例截图一样的回复..

                  Few days ago, I saw a website where users can comment on a post. Other users can reply on that. and a replay can have replies like the example screenshot below..

                  所以我想试一试,但不知何故无法弄清楚.这是我的数据库设置

                  So I thought to give it a try but somehow couldnt figure it out. here is my database set up

                  Schema::create('comments', function (Blueprint $table) {
                              $table->increments('id');
                              $table->unsignedInteger('user_id');
                              $table->unsignedInteger('post_id');
                              $table->unsignedInteger('reply_id')->default(0);
                              $table->text('body');
                              $table->timestamps();
                          });
                  

                  模型中的关系

                  class Comment extends Model
                  {
                      protected $fillable = [
                          'user_id',
                          'post_id',
                          'reply_id',
                          'body'
                      ];
                  
                      public function user()
                      {
                          return $this->belongsTo(User::class);
                      }
                  
                      public function post()
                      {
                          return $this->belongsTo(Post::class);
                      }
                  
                      public function replies()
                      {
                          return $this->hasMany(Comment::class,'reply_id','id');
                      }
                  

                  在控制器中

                  $comments = Comment::with('replies')->where('reply_id','=',0)->get(['id','reply_id','body']);
                     return response($comments);
                  

                  这完美地返回了评论和回复.但是如果有reply的回复,就不会显示了.我怎样才能做到这一点?需要建议.

                  this perfectly returns the comment and replies. But if there is a reply of reply, it doesnt show up. How can I do that? Need suggestion.

                  推荐答案

                  reply_idnullable() parent_id 交换.所以基本上你想知道评论是否有父级.

                  Swap reply_id with a nullable() parent_id. So basically you want to know if a comment has a parent.

                  然后在Comment模型中,添加一个self关系来获取所有parent_id匹配的评论.

                  Then in Comment model, add a self relationship to take all comments whose parent_id match.

                  public function replies() {
                      return $this->hasMany('AppComment', 'parent_id');
                  }
                  

                  在您的视图中,您可以为每个评论及其回复嵌套循环

                  In your view you can have nested loops for each comments and its replies

                  @foreach($comments as $comment) 
                     {{ $comment->content }}
                  
                     @if ( $comment->replies )
                         @foreach($comment->replies as $rep1)
                             {{ $rep1->content }}
                             ...
                         @endforeach
                     @endif
                  @endforeach
                  

                  这篇关于laravel eloquent 嵌套评论和回复的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持html5模板网!

                  上一篇:在laravel eloquent中从数据透视表中获取计数 下一篇:Laravel 属于不工作

                  相关文章

                  最新文章

                    <bdo id='SCsFX'></bdo><ul id='SCsFX'></ul>

                  1. <small id='SCsFX'></small><noframes id='SCsFX'>

                    <legend id='SCsFX'><style id='SCsFX'><dir id='SCsFX'><q id='SCsFX'></q></dir></style></legend>

                    <tfoot id='SCsFX'></tfoot>

                    1. <i id='SCsFX'><tr id='SCsFX'><dt id='SCsFX'><q id='SCsFX'><span id='SCsFX'><b id='SCsFX'><form id='SCsFX'><ins id='SCsFX'></ins><ul id='SCsFX'></ul><sub id='SCsFX'></sub></form><legend id='SCsFX'></legend><bdo id='SCsFX'><pre id='SCsFX'><center id='SCsFX'></center></pre></bdo></b><th id='SCsFX'></th></span></q></dt></tr></i><div id='SCsFX'><tfoot id='SCsFX'></tfoot><dl id='SCsFX'><fieldset id='SCsFX'></fieldset></dl></div>