#php #laravel
Вопрос:
Я пытаюсь воспроизвести довольно простой фрагмент из https://laravel.com/docs/8.x/eloquent#streaming-results-lazily
use AppModelsFlight;
foreach (Flight::lazy() as $flight) {
//
}
Но я получаю Call to undefined method AppModelsFlight::lazy()
ошибку, и я просто не могу понять, почему. Спасибо за совет.
Комментарии:
1. какая версия laravel.проверьте файл композитора на наличие точной версии laravel/framework
2. Вы, вероятно, ищете
foreach(Flight::cursor() as $flight)
: laravel.com/docs/8.x/eloquent#cursors . Кроме того, убедитесь, что вы используете Laravel 8;lazy()
был представлен в8.x
предыдущих версиях и недоступен в них.3. Курсор @TimLewis не может быстро загружать отношения, так что это не то, что я ищу.
4. Хотя это справедливая точка зрения, ваш вопрос в том виде, в каком он написан, не имеет ничего общего с интенсивной загрузкой отношений;
Flight::lazy()
не выполняет интенсивную загрузку отношений и недоступен, поэтому я связал лучшую доступную функцию для вашей версии Laravel.
Ответ №1:
Я думаю lazy()
, что метод добавлен в версию laravel v8.34.0
.Даже если вы используете Laravel 8
, убедитесь, что это должна быть хотя бы версия v8.34.0
В соответствии с примечанием к выпуску платформы Laravel.
Added lazy() and lazyById() methods to IlluminateDatabaseConcernsBuildsQueries
Ссылка:https://github.com/laravel/framework/releases/tag/v8.34.0 Ссылка:https://github.com/laravel/framework/pull/36699
Комментарии:
1. В настоящее время моя версия 8.20.1, так что вы правы. Спасибо 🙂