Je crée un site Web de commerce électronique et j'ai la relation suivante:

Grands-parents : catégorie (identifiant, nom)
Parents : marque (id, nom, category_id)
Enfants : produit (identifiant, nom, identifiant de la marque)

Exemple : Smartphone (Catégorie) - & gt; iPhone (Marque) - & gt; iPhone 12, iPhone 12 Pro, iPhone 12 Pro Max (Produit)
Je veux obtenir tous les iPhone 12 comme ci-dessus à partir de la catégorie J'aime

$iPhone = App\Category::find(1)->brands->where('name','iPhone')->toArray()

Merci pour ton aide

0
user35181 30 nov. 2020 à 13:58

2 réponses

Meilleure réponse

POUR obtenir tous les produits de la marque 'iPhone' pour la catégorie 'Smartphone'


$iphones = Category::whereName('Smartphone')
    ->with(['brands' => function($query){
        $query->with('products')->whereName('iPhone');
    })
    ->get();
0
Donkarnash 30 nov. 2020 à 11:16

Essayez cette requête

 $iPhones = App\Category::whereHas('brands', function ($query)
        {
            $query->where('name','iPhone');
        })->get();
0
ml59 30 nov. 2020 à 11:03