Laravel 具有依赖项计数的查询生成器

Laravel query builder with count of dependencies

我在使用 Laravel (Lumen) 构建查询时遇到了问题。 这是我的代码:

$user = User::where('name', $name)
        ->with(['pages' => function($query){
            $query->orderBy('created_at', 'desc')
                ->with(['posts'])
                ->orderBy('created_at', 'desc')
                ->take(4);
        }])
        ->first();

我想增加页面和帖子的响应计数,因此我希望响应有两个额外的字段,例如:

...
pages_count: 5,
posts_count: 25
...

我该怎么做?

向查询添加 ->count() 不起作用。

感谢您的帮助。

您可以像这样使用 withCount

User::where('name', $name)
    ->withCount('pages')
    ->with(['pages' => function($query){
        $query->orderBy('created_at', 'desc')
            ->withCount('posts')
            ->with('posts')
            ->orderBy('created_at', 'desc')
            ->take(4);
    }])
    ->first();