在Laravel 5中按行排序并限制结果

时间:2015-03-26 10:23:20

标签: php laravel eloquent

我试图在基于laravel 5的应用程序中从数据库中获取结果,并且在我的生活中无法弄明白。

我想从名为count的行中选择前5个结果DESC。 这就是我所拥有的:

$full = Fulls::all()->orderBy('count', 'desc')->take(5)->get();

我也尝试了很多其他方法,但似乎没有任何效果。现在我收到了错误:

  

indexController.php第19行中的FatalErrorException:调用undefined   方法Illuminate \ Database \ Eloquent \ Collection :: orderBy()

但是,无论我在哪里,我都会看到有人使用orderBy(),所以...我做错了什么?

提前致谢...

4 个答案:

答案 0 :(得分:19)

您应该使用Fulls::orderBy(..)->take(5)->get()代替。

答案 1 :(得分:2)

如果要对集合进行排序/排序,可以使用sortBy()方法。

例如

std::this_thread::get_id()

答案 2 :(得分:0)

您可以使用laravel和skip的{​​{1}}和take功能

orderBy

答案 3 :(得分:0)

您可以跳过偏移量

$full = Fulls::orderBy('count', 'desc')->skip(0)->take(5)->get(); //get first 5 rows
$full = Fulls::orderBy('count', 'desc')->skip(5)->take(5)->get(); //get next 5 rows

实际的mysql查询如下:

SELECT * FROM fulls ORDER BY count DESC LIMIT 0,5