如何使withCount('comments')
还包括所有已删除/已删除的行?
例如,如果我有5条评论,并且我删除1条,我仍然希望withCount('comments')
返回5,但它会返回4条。
我的完整查询如下所示:
$query = Post::withTrashed()
->withCount('comments')
->get();
答案 0 :(得分:0)
您可以使用withTrashed方法:
>withTrashed()
答案 1 :(得分:0)
我想你可以试试这个
$query = Post::withCount('comments')
->withTrashed()
->get();
或强>
$query = DB::table('post')
->select('comments', DB::raw('count(*) as comments'))
->get();
希望这对你有用!
答案 2 :(得分:0)
由于laravel没有提出使用withCount
时过滤关系的方法,因此一种干净的解决方案是声明该关系并将withTrashd()
添加到其中。
在 Post.php
中public function commentsWithTrashed()
{
return $this->comment()->withTrashed();
}
现在您可以在其上使用withCount
。
$query = Post::withTrashed()
->withCount('commentsWithTrashed')
->get();
答案 3 :(得分:0)
您可以将其添加为计数
$query = Post::withCount(['comments'=> function ($query) {$query->onlyTrashed();])
->get();
它正常工作。