Laravel Eloquent - Почему take (n) работает, а limit (n) - нет? - PullRequest
0 голосов
/ 20 ноября 2018

Согласно документам laravel, take () - это просто псевдоним предела ().

Почему запрос № 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.

1 Ответ

0 голосов
/ 20 ноября 2018

Когда вы вызываете get, ваш запрос к базе данных был выполнен, поэтому результатом является Illuminate\Support\Collection, а когда вы вызываете limit для Collection, выдается ошибка, потому что Collection класс не имеет limit function.

limit и take оба выполняются в вашем запросе к базе данных, поскольку они также являются функциями Illuminate\Database\Query\Builder и Illuminate\Database\Eloquent\Builder, а не Collection.

Обратите внимание: третье утверждение работает, потому что Illuminate\Support\Collection также имеет функцию take.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...