Laravel 5按大多数计数儿童记录排序

时间:2016-02-19 03:11:16

标签: php laravel laravel-5

我有两张表Quiz和quiz_results。

so Quiz hasMany('App\QuizResult')
and QuizResult belongsTo('App\Quiz')

在我的控制器中,我可以查询

$top_quiz = Quiz::with('quiz_results')->limit(10)->get();

在我看来,我可以做到这一点

{{ $top_quiz->quiz_results()->count() }}

这将显示quiz_result中属于测验的记录总数。

实施例

quiz_id | quiz_result_count (this is the total # of quiz_result of quiz table, this i want to sort)
1       |   3
2       |   2
3       |   3
4       |   5
  

问题是我如何通过$ top_quiz-> quiz_results() - > count()来订购或排序?

2 个答案:

答案 0 :(得分:2)

对测验结果进行排序:

Quiz::with(['quiz_results' => function($query) { $query->count(); }])->get()->take(10)->sortBy('quiz_results')->all();

答案 1 :(得分:1)

文档是你的朋友。

https://laravel.com/docs/5.2/queries#ordering-grouping-limit-and-offset

$top_quiz = Quiz::with('quiz_results')->orderBy('grade', 'desc')->limit(10)->get();