Php Laravel 5.7不同帖子的评论数
当我得到帖子的评论数时,我被绊住了,但它显示了每个帖子上所有帖子的所有评论数。我想知道如何输出在刀片评论后ID计数 这是控制器:Php Laravel 5.7不同帖子的评论数,php,laravel,Php,Laravel,当我得到帖子的评论数时,我被绊住了,但它显示了每个帖子上所有帖子的所有评论数。我想知道如何输出在刀片评论后ID计数 这是控制器: $posts = $posts->orderBy("posted_at", "desc") ->paginate(config("blogetc.per_page", 10)); $comments = BlogEtcComment::all(); return view("blogetc::index", [
$posts = $posts->orderBy("posted_at", "desc")
->paginate(config("blogetc.per_page", 10));
$comments = BlogEtcComment::all();
return view("blogetc::index", [
'posts' => $posts,
'title' => $title,
'comments' => $comments,
]);
刀片:
@foreach($posts as $post)
<section class="blog_area p_120">
<div class="container">
<div class="row">
<div class="col-lg-8">
<div class="blog_left_sidebar">
<article class="blog_style1">
<div class="blog_img">
<img class="img-fluid" src="blog_images/{{$post->image_large}}" alt="">
</div>
<div class="blog_text">
<div class="blog_text_inner">
<div class="cat">
<a class="cat_btn" href="{{$post->url()}}">{{$post->slug}}</a>
<a href="#"><i class="fa fa-calendar" aria-hidden="true"></i>{{$post->created_at}}</a>
<a href="{{$post->url()}}"><i class="fa fa-comments-o" aria-hidden="true"></i> {{count($comments)}}</a>
</div>
<a href="{{$post->url()}}"><h4>{{$post->title}}</h4></a>
<p>{!! $post->generate_introduction(400) !!}</p>
<a class="blog_btn" href="{{$post->url()}}">Lasīt vairāk</a>
</div>
</div>
</article>
</div>
</div>
</div>
</div>
</section>
@endforeach
@foreach($posts as$post)
{!!$post->生成介绍(400)
@endforeach
您可以使用获取特定帖子的评论数:
$posts = $posts->withCount('comments')
->orderBy("posted_at", "desc")
->paginate(config("blogetc.per_page", 10));
以上要求您在您的帖子
模型上有评论
关系:
public function comments()
{
return $this->hasMany(BlogEtcComment::class);
}
Post
型号:
public function comments()
{
return $this->hasMany(BlogEtcComment::class);
}
BlogEtcComment
型号:
public function post()
{
return $this->belongsTo(Post::class);
}
然后在blade中:
@foreach($posts as $post)
<p>Post : $post->id</p>
<p>Comments : $post->comments_count</p>
@endforeach
@foreach($posts as$post)
Post:$Post->id
评论:$post->Comments\u count
@endforeach
//快速修复:
//假设您的posts表名为posts,并且在blogetccomments表中//有一个post_id列指向原始post。试试像这样的东西
$posts = DB::table('posts')
->leftJoin('blogetccomments', 'posts.id', '=', 'blogetccomments.post_id')
->selectRaw('posts.*, count(blogetccomments.post_id) as commentcount')
->groupBy('posts.id')
->get();
在blade模板中,访问每个帖子的评论数,如下所示
@foreach($posts as $post)
...
{{$post->title}}...
{{$post->commentcount}}
...
@endforeach
你需要使用
groupBy
子句。我找到了另一种方法,但不知道这是一种好的做法。我把我的刀锋-“{count($comments)}}”改为“{count($post->comments)}”,它对机械化刀锋没有帮助,因为你仍然这样做{count($comments)}
和$comments=BlogEtcComment::all()代码>将始终包含所有帖子的所有记录。你能展示一下模型吗?