У меня есть две модели, Box и BoxLocations.Box
имеет отношение hasMany
к BoxLocations
, а BoxLocations
имеет отношение belongsTo
к Box
.
BoxLocations
также имеет атрибут, который добавляется к модели, для которой требуется один фрагмент информации из отношения Box.
Я заметил, что при вызове Box::with(['BoxLocations']->)all();
я вижу, чтоBoxLocations
модель перезагружает отношения Box.Это происходит для каждого BoxLocation
(50 нечетных раз)
Не отслеживает ли laravel, что Box уже был загружен из исходного запроса Box::with(['BoxLocations']->)all();
, а затем передает это в отношение BelongsTo?
Я пытаюсь оптимизировать веб-систему, и когда загруженный атрибут загружается (досадно, он требуется каждый раз, когда загружается также), он вызывает 50 нечетных попаданий в базу данных для той же модели Box, которую он уже загрузил.
Если Laravel не делает этого - есть ли лучший способ достичь вышеуказанного?