【发布时间】:2021-02-20 06:21:00
【问题描述】:
我正在使用 Laravel 8 和 withCount 属性来获取在我的产品模型上发布的所有 cmets 的数量。这些 cmets 也有子 cmets。现在我想获取每个产品的已发布 cmets 和子 cmets 的数量...
我的评论表:
id, page_status_id, user_id, commentable_type, commentable_id, content
我的孩子 cmets 表:
id, page_status_id, user_id, comment_id, content
这是我 product 模型中的 comments 关系:
public function comments()
{
return $this->morphMany('App\Models\Comment', 'commentable')->orderBy('id');
}
这是我的withCount 函数:
public function publishedComments()
{
return $this->comments()->where('page_status_id', PageStatus::getIdByStatus('publish'));
}
获取已发布 cmets 的计数非常容易...但是如何获取某个产品的所有已发布 cmets 和子 cmets 的计数?
有什么想法吗?我用inner join 尝试了一个原始的 SQL 语句,但这也是错误的方式..
诚挚的问候和感谢
【问题讨论】:
-
您可以使用其他查询吗?我可以告诉你一个得到你需要的查询。但需要单独查询
-
什么意思?请发一个例子
标签: mysql laravel eloquent count nested