Bonjour,

Je me tourne vers le forum afin de trouver une solution à mon petit problème.

J'ai des produits qui ont chacun une categorie. Je récupère l'ensemble des categories et les produits attachés en faisant :

$categories=Category::with('products')->orderBy('position','asc')->get();

Jusqu'ici, pas de soucis. ça marche correctement. J'ai bien l'ensemble de mes produits pour chaque categorie. Et cela ne génére que 2 requêtes SQL.

L'ennui, c'est que les produits ont une relation avec le modèle Type.

    public function type() {
        return $this->belongsTo(Type::class);
    }

Lorsque j'affiche ma page, je dois afficher aussi le type du produit. L'ennui c'est que ça génére beaucoup de requête dont la plupart sont dupliquées. Car il n'y a pas de with pour les produits.

Je ne vois pas comment faire pour utiliser with('type') dans ma query afin de récupérer aussi le type de chaque produit.

Une âme charitable pourrait-elle me donner un coup de pouce ? De mon côté je vais continuer à chercher.

Cordialement,
David.

1 réponse


davidDC
Auteur
Réponse acceptée

J'ai résolu mon problème finalement. J'ai enfin trouvé ce que je cherchais dans la doc laravel.

Il me suffisait juste de faire :

$categories=Category::with('products.type')->orderBy('position','asc')->get();

et je n'ai maintenant que 3 requêtes SQL.