根据laravel文档,take()只是limit()的别名。
为什么不查询4就不行,而其他查询就很好。
1. $employee->take(2)->get(); // Works
2. $employee->limit(2)->get(); // Works
3. $employee->get()->take(2); // Works
4. $employee->get()->limit(2) // Gives Error; Method Illuminate/Database/Eloquent/Collection::limit does not exist.
答案 0 :(得分:5)
调用get
时,数据库查询已执行,因此结果为Illuminate\Support\Collection
,而在limit
上调用Collection
时会引发错误,因为{ {1}}类没有Collection
函数。
limit
和limit
都在数据库查询中执行,因为它们同时也是take
和Illuminate\Database\Query\Builder
的功能,而不是Illuminate\Database\Eloquent\Builder
上的。 / p>
注意:第三条语句之所以起作用,是因为Collection
也具有Illuminate\Support\Collection
函数。