我正在努力工作几天,但我无法让它发挥作用。
这是一个例子,我有Laravel模型测试,而问题,问题模型里面有test_id属性。我想按照给定测试的test_id = id存在的问题数量对Test集合进行排序。
我试过了两次
$tests = Test::select(
array(
'*',
DB::raw('(SELECT count(*) FROM questions WHERE test_id = id) as count_questions'))
)->with('questions')->orderBy('count_questions','desc')->paginate(5);
和
$tests = Test::has('questions', '>', 3 )->with('questions')->get()->sortBy(function($test)
{
return $test->questions->count();
});
但结果相同,集合未排序。
如果重要,我会使用json响应,当我尝试回显$ test-> questions-> count();每次测试我都会得到一些问题。