Laravel:如何在查询中计数

Gam*_*mer 0 php mysql laravel eloquent laravel-5

我有以下查询:

App\User::join('gift_sents', function($builder){
      $builder->on('gift_sents.receiver_id', '=', 'users.id');
      })
      ->select('users.*', 'COUNT(gift_sents.receiver_id as total_posts')
      ->groupBy('gift_sents.id')
      ->orderBy('total_posts', 'ASC')
      ->limit(3)->get();
Run Code Online (Sandbox Code Playgroud)

计数不工作,它应该工作!

出现以下错误:

Column not found: 1054 Unknown column 'COUNT(gift_sents.receiver_id' in 'field list' (SQL: select用户.*,计数(gift_sents .receiver_id astotal_postsfrom用户inner joingift_sents ongift_sents .receiver_id=用户.id group bygift_sents .id order bytotal_postsasc limit 3)

The*_*per 5

我认为应该是:

  ->select('users.*', DB::raw('COUNT(gift_sents.receiver_id) as total_posts'))
Run Code Online (Sandbox Code Playgroud)

请参阅此处的文档-“原始表达式”部分