在文档中,它显示以下内容:
要限制查询返回的结果数,或跳过查询中给定数量的结果,您可以使用skip和take方法:
$users = DB::table('users')->skip(10)->take(5)->get();
或者,您可以使用限制和偏移方法:
$users = DB::table('users')
->offset(10)
->limit(5)
->get();
这两者有什么不同?执行速度有什么不同吗?
答案 0 :(得分:13)
take()
只是limit()
的别名:
/**
* Alias to set the "limit" value of the query.
*
* @param int $value
* @return \Illuminate\Database\Query\Builder|static
*/
public function take($value)
{
return $this->limit($value);
}
希望这有帮助!
答案 1 :(得分:7)
limit
仅适用于精通的ORM或查询构建器对象,而take
仅适用于集合以及ORM或查询构建器对象。
Model::get()->take(20); // Correct
Model::get()->limit(20); // Incorrect
Model::take(20)->get() // Correct
Model::limit(20)->get() // Correct
答案 2 :(得分:0)
限制适用于 eleqoent。主要与偏移量一起使用
例如
Model::offset(10)->limit(10)->get()
在上面的例子中,这意味着从第 10 个元素开始(偏移量)开始获取 10 个元素(限制)。
Take 主要用于集合,但也可以用作 eloquent 模型的 limit 的别名