Объединение разрозненных запросов к базе данных в один запрос - PullRequest
0 голосов
/ 08 января 2020

У меня есть функция с именем image(), которая принимает некоторые параметры, а затем выполняет запрос к базе данных, чтобы получить запись File, которая затем используется для генерации URL. Эта функция используется в нескольких местах в представлении, например

<body>

    <div>
        <img src="{{ image("asset1") }}" />
    </div>

    ... more html ...

    <div>
        <img src="{{ image("asset2") }}" />
    </div>  

    ... more html ...

    <div>
        <img src="{{ image("asset3") }}" />
    </div>   
</body>

Приведенный выше код будет выполнять 3 запроса к базе данных, но в зависимости от количества вызовов метода image он может в итоге составить 10, 15, 20 et c. У меня также нет возможности заранее узнать, какие активы будут запрашиваться.

Я ищу способ по существу "объединить" каждый из этих image вызовов методов / сгруппировать все запросы. в один, чтобы улучшить производительность. Тем не менее, я не совсем уверен, какой подход лучше использовать для этого.

Я думал о том, чтобы метод image возвращал фрагмент текста-заполнителя, а затем, после отображения представления, выполнял запрос. и выполнить поиск и замену в пределах HTML? Это правильный путь к go? Практическая? Performant?

Буду признателен за любые предложения / рекомендации.

Спасибо!

1 Ответ

0 голосов
/ 09 января 2020

Моя первоначальная стратегия кажется подходящим подходом. Я закончил тем, что использовал создателей View для манипулирования обработанным HTML перед его доставкой пользователю.

См. https://laravel.com/docs/6.x/views#view -композиторов

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