je les modèles et les relations suivantesLaravel 5: Comment obtenir toutes les annonces d'une catégorie incluant toutes les sous-catégories
class Advert extends Model
{
public function category() {
return $this->belongsTo('App\Category');
}
}
class Category extends Model
{
public function parent() {
return $this->belongsTo('App\Category', 'category_id','id');
}
public function children() {
return $this->hasMany('App\Category', 'category_id');
}
public function adverts() {
return $this->hasMany('App\Advert');
}
}
Je table avec annonces qui appartiennent à une catégorie ... catégorie de l'annonce peut être un sous-catégorie d'une autre catégorie ... Niveau sous-catégorie est max 4. Comment puis-je récupérer toutes les publicités de toutes les sous-catégories à travers la catégorie racine principale, il appartient.
Par exemple
<ul>
<li>Smartphones
<ul>
<li>Android
<ul>
<li>Samsung</li>
<li>Huawei</li>
<li>LG</li>
<li>Meizu</li>
<li>Acer</li>
</ul>
</li>
<li>Apple
<ul>
<li>iPhone 5</li>
<li>iPhone 6</li>
<li>iPhone X</li>
</ul>
</li>
</ul>
</li>
</ul>
Comment puis-je obtenir toutes les annonces de toutes les sous-catégories, par exemple si je clique sur Smartphones ... Dois-je itérer chaque niveau ou il y a un solution plus facile avec les relations ...
Merci
Créez une fonction récursive qui prend en paramètre la catégorie actuelle. Dans cette fonction, vérifiez si cette catégorie a des enfants. Echo les enfants, et effectuez une vérification s'ils ont des enfants, si c'est le cas, appelez la fonction que vous venez de créer pour ces enfants, à partir de la boucle dans la fonction –
Cela semble très similaire: https://stackoverflow.com/a/ 38216669/1744771 –
@JamesSheils ce genre m'a aidé mais c'est ne pas aller chercher les publicités du dernier niveau de catégories ... – BinaryNeno