2014-01-10 56 views
0

這是從我的TagsController我的索引行動:用Laravel 4計算關係和秩序?

if(Input::get('filter') == 'most-used') 
{ 
    $tags = Tag::with('questions')->orderBy('name', 'asc')->paginate(10); 
    return View::make('tags.index', compact('tags')); 
} 

我想與第一大多數問題的標籤。

你是怎麼做的?

在此先感謝!

+0

難道要計算的問題多少? – Anam

回答

0

試試這個:(未經測試

$tags = Tag::with('questions')->orderBy('name', 'asc')->paginate(10); 
$tags = $tags->sortBy(function($tag){ 
    return $tag->questions->count(); 
}); 
return View::make('tags.index', compact('tags')); 
+0

即使我用get()更改paginate(),我也不工作。 – foozoor

+0

這隻會對當前頁面的標籤進行排序,而不是對所有標籤進行排序,然後對這些結果進行分頁。 –

1

這是我如何做的:

if(Input::get('filter') == 'most-used') 
{ 
    $tags = Tag::select(
      '*', 
      DB::raw("(SELECT COUNT(*) FROM `questions_tags` WHERE `tag_id` = `tags`.`id`) AS 'count'") 
     ) 
     ->orderBy('count', 'desc') 
     ->paginate(10); 
    return View::make('tags.index', compact('tags')); 
}