Birkaç gün uğraşıyorum ama işe yaramayacağım.Laravel koleksiyonunu ilişkilendirme sayısı ile karşılaştır
Örnekte, Laravel model Test ve Sorularım var, Soru modelinde test_id özelliği var. Test koleksiyonunu, verilen testin test_id = kimliğiyle var olan soruların sayısına göre sıralamak istiyorum.
ben hem
$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);
ve
$tests = Test::has('questions', '>', 3)->with('questions')->get()->sortBy(function($test)
{
return $test->questions->count();
});
ama sonuç aynı, koleksiyon sıralanmamıştır olduğunu çalıştılar.
Önemliyse json yanıtı kullanıyorum ve $ test-> questions-> count(); Her test için soru sayısı alıyorum.