用Laravel 4计算关系和订单?

时间:2014-01-10 19:08:41

标签: laravel laravel-4 eloquent

这是我的TagsController的索引操作:

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

我想首先提出问题最多的标签。

你是怎么做到的?

提前致谢!

2 个答案:

答案 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'));