Bonjour tout le monde,

bon voilà je fais mon premier gros projet sous laravel, et je rencontre un petit soucis au niveau du nombre de requêtes. J'en réalise en moyenne 13 par page, mais ya moyen de réduire jusqu'à 6-7 max.

Pour expliquer vite fait ce qui pose problème, j'ai mes articles dans une table posts, et des images dans une table images. Des images peuvent être liées avec des articles (il y a un champ post_id). Quand je récupère mes articles, je prends avec les images liées. J'utilise le système d'eager loading, je fais mes requêtes Post::with('images')....
Pour l'instant, pas de problèmes. Le truc c'est que j'ai besoin d'effectuers plusieurs requêtes sur ma page (on va dire 3) article avec des critères différents, et j'ai à chaque fois besoin de ces images.
Je me retrouve avec 3 requêtes presques identiques sur la table images.
Je peux difficilement combiner mes requêtes en une ayant des critères différents pour chacune d'elles.
Bref, il faudrait que toutes les requêtes de ces images soient faitent en derniers et que les valeurs de retour s'associent comme il le faut.

Existe-t-il une option intégrée ? Ou une librairie (c'est comme ça que ça s'appelle ? D:) ?

Merci d'avance !

Rocrafwer

7 réponses


Grafikart
Réponse acceptée

Pas d'options intégré. Le mieux est de récupérer les posts d'un côté, extraire les IDs, et les utiliser pour faire la requêtes de toutes les images. Ensuite grouper les images par post_id pour les utiliser plus simplement.

Et le cache ?

Comment ça ?

Pourquoi ne pas utiliser un cache? ^^ Comme le dit @SquallX

https://laravel.com/docs/5.2/cache

Tu peux cacher tes requêtes de différentes manières et stocker aussi les images en cache ;)

Argh ! Je suis désolé je ne vois pas comment faire :'(

Pour réexpliquer vite fait mon problème, voici une pitite image : http://www.noelshack.com/2016-01-1452449711-2.png.
Ce que j'aimerai faire c'est combiner toutes les requettes sur la table images.

Merci en tous cas :p

Okay donc pas d'options. Dommage.
Merci d'avoir répondu !