142

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

 SELECT * FROM  `games` LIMIT 30 , 30 

和雄辩的?

4

4 回答 4

252

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

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

take()这里将获得 30 条记录,skip()这里将抵消 30 条记录。


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

Game::limit(30)->offset(30)->get();
于 2013-03-05T16:45:18.557 回答
19

如果您希望对结果进行分页,请使用集成的分页器,它非常有用!

$games = Game::paginate(30);
// $games->results = the 30 you asked for
// $games->links() = the links to next, previous, etc pages
于 2015-09-04T23:42:55.813 回答
19

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

Model::take(20)->get();
于 2017-10-05T08:48:51.377 回答
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();
于 2020-07-05T13:19:26.507 回答