Php 在《拉雷维尔雄辩》中,极限与承受之间的区别是什么?
在文档中,它显示了以下内容: 要限制查询返回的结果数,或在查询中跳过给定数量的结果,可以使用skip和take方法:Php 在《拉雷维尔雄辩》中,极限与承受之间的区别是什么?,php,laravel,eloquent,Php,Laravel,Eloquent,在文档中,它显示了以下内容: 要限制查询返回的结果数,或在查询中跳过给定数量的结果,可以使用skip和take方法: $users = DB::table('users')->skip(10)->take(5)->get(); 或者,您可以使用限制和偏移方法: $users = DB::table('users') ->offset(10) ->limit(5) ->get(); 这两
$users = DB::table('users')->skip(10)->take(5)->get();
或者,您可以使用限制和偏移方法:
$users = DB::table('users')
->offset(10)
->limit(5)
->get();
这两者有什么区别?执行速度有什么不同吗?对于查询生成器,
take()
只是limit()
的别名:
NB这不能与集合上的
take()
混淆。limit
仅适用于有说服力的ORM或查询生成器对象,而take
适用于集合和ORM或查询生成器对象
Model::get()->take(20); // Correct
Model::get()->limit(20); // Incorrect
Model::take(20)->get() // Correct
Model::limit(20)->get() // Correct
限制对eleqoent有效。主要与offset连用 e、 g 在上面的例子中,它意味着从第10个元素(偏移量)开始获得10个元素(限制)
Take主要用于集合,但也可以用作雄辩模型的limit别名skip也是offset的别名吗?@rotaercz是的,它是:)它不是“唯一”别名!这完全取决于您使用的是集合还是“雄辩的集合”,后者是别名类型,但如果您使用集合,它只会限制您从RDBMS中了解的集合对象的函数类型。参见source我为使用google到处跑的人添加了这条评论,他们不知道EloquentCollection与集合不同,但与集合非常相似。@Kyslik OP的问题专门与查询生成器有关,甚至没有提到集合。在
Support\Collection
或elokent\Collection
上都没有limit()
或offset()
方法。我知道,这就是为什么我添加了“我添加了此注释…”一个是有说服力的方法,另一个是收集方法--
Model::get()->take(20); // Correct
Model::get()->limit(20); // Incorrect
Model::take(20)->get() // Correct
Model::limit(20)->get() // Correct
Model::offset(10)->limit(10)->get()