Laravel - Éloquent De Soi De La Relation
beaucoup de mes modèles et le code est ici et liés à cette question:
laravel - Générateur de Requêtes vs Éloquent
J'ai cette requête:
$recipes = Recipe::whereHas('categories', function($q) use ($cat_id) {
$q->where('category_id', $cat_id);
})->with('user')->get();
Fonctionne très bien si je le souhaite (exemple) ID = 5. Je reçois toutes les recettes qui ont category_id = 5.
Que faire si...
Disons, le category_id = 5 a le parent qui a l'id = 1 (Principales catégories d'ID de 1 à 3 et à tous les enfants de 4 à x).
J'ai besoin maintenant, que si quelqu'un clique sur la catégorie principale, dans ce cas, l'ID = 1, ce que je peux obtenir TOUTES les recettes qui sont liées à la catégorie principale, y compris les enfants. Donc, je reçois tous les de la Catégorie 1 et tous à partir de 5 (et ainsi de suite).
Je n'ai AUCUNE idée, comment je peux définir la relation ou de construit la requête.
Seconde est, que j'ai aussi besoin de mettre en œuvre cette fonction dans la "recherche avancée" la méthode du site, mais je pense que, si je peux résoudre cette question, le reste est "facile".
Aide est très appréciée. Merci!!!!
Vous devez vous connecter pour publier un commentaire.
Selon le
title
et les détails que vous avez décrit dans votre question me fait penser que, vous voulez créer une relation pour le modèle lui-même à l'aide d'un autre champ/colonne du même modèle et de laid
champ et dans ce cas, vous pouvez créer une telle relation, en utilisant quelque chose comme ceci:Selon cette relation, votre
categories
table doit contenir la clé primaireid
et un autre champ commecategory_id
de faire rapport donc, si unid
est1
et sicategory_id
contient les1
puis il y a une relation entreid=1
etcategory_id=1
.J'ai écrit un article il y a quelques jours sur ce même chose, vous pouvez lire que pour obtenir la meilleure idée de qui je parle: LARAVEL – MODÈLE DE RELATION À LUI-MÊME.
id
est le parent etcategory_id
est l'enfant des éléments, avez-vous lu l'article ? Vous devriez lire que pour avoir l'idée, je l'ai utilisé dans une chose semblable.