【发布时间】:2022-01-27 01:45:30
【问题描述】:
我想获取帖子中的 cmets 总数。
两种型号。 发布和评论。 Comments 与 Post 具有 p多态关系。评论可以在自己上有其他的cmets。它们是 cmets 上的 cmets / 对评论的回复。这种关系由评论数据库表中的列 comment_parent 表示。
这是我的模型:
发帖
public function comments()
{
return $this->morphMany(Comment::class, 'commentable')->whereNull('comment_parent');
}
评论
public function commentable()
{
return $this->morphTo();
}
public function replies()
{
return $this->hasMany(Comment::class, 'comment_parent')->orderBy('id', 'desc');
}
刀片
在我的刀片中,Count 只显示第一级 cmets 的数量。对 cmets 的所有回复 不要。如何以及在哪里可以确定具有回复计数的所有 cmets 的数量?
post.blade.php
<h3>Comments ( {{ $post->comments->count() }} )</h3>
@foreach($comments as $comment)
<div>{{ $comment->content }}</div>
<!-- show replies -->
<div>
@foreach($comment->replies as $reply)
<div class="bg-blue-100 ml-20 my-2">
<div>{{ $reply->content }}</div>
</div>
@endforeach
</div>
@endforeach
后控制器
public function show(Post $post) {
$post->load(['comments' => function ($query) {
$query->where('comment_approved', true)->orderBy('id','desc');
}]);
return view('page.post', ['post' => $post]);
}
【问题讨论】:
标签: laravel