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

Nat*_*lva 131 mysql laravel sql-limit eloquent

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

 SELECT * FROM  `games` LIMIT 30 , 30 
Run Code Online (Sandbox Code Playgroud)

和Eloquent?

Muh*_*man 232

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

Game::take(30)->skip(30)->get();
Run Code Online (Sandbox Code Playgroud)

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


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

Game::limit(30)->offset(30)->get();
Run Code Online (Sandbox Code Playgroud)


fre*_*nte 17

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

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

  • 这真是太神奇了!使用bootstrap,你需要的所有代码就是你的控制器中的$ games = Game :: paginate(30)和你视图中的{{$ games-> links()}} ......它可以处理所有事情.爱Laravel! (3认同)

小智 13

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

Model::take(20)->get();
Run Code Online (Sandbox Code Playgroud)

  • 在这种情况下,`take`只是`limit`的别名。参见https://github.com/laravel/framework/blob/5.7/src/Illuminate/Database/Query/Builder.php#L1896。 (2认同)