这是我的TagsController的索引操作:
if(Input::get('filter') == 'most-used')
{
$tags = Tag::with('questions')->orderBy('name', 'asc')->paginate(10);
return View::make('tags.index', compact('tags'));
}
我想首先提出问题最多的标签。
你是怎么做到的?
提前致谢!
答案 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'));
}
答案 1 :(得分: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'));