我有两张表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()来订购或排序?
答案 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();