2017-05-25 13 views

答えて

2

使用withCountポストは関係をロードせずにカウントを取得し、posts_countを使用して結果をソートします。必要に応じて追加条件を適用することもできます。ボーナスとして、各ユーザーの投稿数を取得します。

$users = User::withCount('posts') 
    ->orderBy('posts_count', 'desc') 
    ->get(); 
+0

ありがとうございました – Harry

0

あなたはこのようにそれを行うことができます。

$users = User::with('posts')->get()- 
>sortBy(function($users) 
{ 
return $users->posts->count(); 
}); 
1

はこれを試してみてください:

$data = User::select(DB::raw('users.*, count(*) as total_posts')) 
    ->join('posts', 'users.id', '=', 'posts.user_id') 
    ->groupBy('user_id') 
    ->orderBy('total_posts', 'desc') 
    ->get(); 
関連する問題