@demeys

Как сократить количество запросов при выводе миниатюр в laravel-medialibrary?

Привет! для загрузки и изменения картинок использую spatie/laravel-medialibrary
Мне нравится этот пакет, но я столкнулся с небольшой проблемой производительности.

У меня сложилось впечатление, что для каждого отображаемого медиаизображения выполняется дополнительный запрос БД, запрашивающий все столбцы из элемента родительской модели.
5cc5a90c1d6c0468481934.png
при выводе использую
TeamsController.php
$items = Team::latest()->with("media")->limit(10)->get();

blade
@foreach ($items as $item)
                <img src="{{ $item->getFirstMediaURL('default', 'thumb') }}" />
            @endforeach


Как убрать эти дополнительные запросы к БД?
  • Вопрос задан
  • 176 просмотров
Пригласить эксперта
Ответы на вопрос 2
Alex_Wells
@Alex_Wells
PHP/Kotlin
Ты явно не все нам показываешь. Предполагаю, что где-то есть foreach($teams as $team), внутри котрого foreach($team->media as $media), а от медии делаешь $media->team, которые и вызывают запросы.

Весь код скидывай - всего шаблона, контроллера а так же метода getFirstMediaURL.
Ответ написан
Комментировать
@demeys Автор вопроса
нашел проблему.
Она была в файле CustomPathGenerator при формировании пути
return sprintf("%s/%s/%s/",  $media->model->getTable(), $media->model_id, $media->id);

и создавались дополнительные запросы
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы