有没有办法用Laravel的ELOQUENT ORM“限制”结果?

时间:2013-03-05 16:39:13

标签: mysql laravel eloquent sql-limit

有没有办法限制"与Laravel的ELOQUENT ORM结果?

 SELECT * FROM  `games` LIMIT 30 , 30 

和Eloquent一起?

4 个答案:

答案 0 :(得分:220)

创建一个扩展Eloquent并使用它的游戏模型:

Game::take(30)->skip(30)->get();

take()此处将获得30条记录,skip()此处将偏移至30条记录。


在最近的Laravel版本中,您还可以使用:

Game::limit(30)->offset(30)->get();

答案 1 :(得分:15)

如果您希望对结果进行分页,请使用集成的paginator,效果很好!

$games = Game::paginate(30);
// $games->results = the 30 you asked for
// $games->links() = the links to next, previous, etc pages

答案 2 :(得分:11)

我们可以像下面这样使用LIMIT:

Model::take(20)->get();

答案 3 :(得分:0)

此外,我们可以通过以下方式使用它

只获得第一名

 $cat_details = DB::table('an_category')->where('slug', 'people')->first();

通过限制和偏移量获取

$top_articles = DB::table('an_pages')->where('status',1)->limit(30)->offset(0)->orderBy('id', 'DESC')->get();
$remaining_articles = DB::table('an_pages')->where('status',1)->limit(30)->offset(30)->orderBy('id', 'DESC')->get();