Bonjour à tous,

Je m'arrache les cheveux à essayer de mettre en place un système de catégories et de sous catégories avec Laravel.

Je souhaite utiliser le système intervellaire et je suis tombé sur nestedset et sur laravel-trees.

Ma préférence se porte sur le second car j'ai besoin de plusieurs arbres totalement distinct et de ce que j'ai compris, le second gère une multitude d'arbre.

Je pense avoir réussi à installer l'un et l'autre sur deux projets de test distinct mais lorsque j'essaie de suivre la doc, j'ai de multiples erreurs que je n'arrive pas à corriger.

Quand bien même j'arriverais à installer l'un ou l'autre, je ne comprends pas leur usage (principalement comment ajouter ou supprimer une catégorie / en supprimant les sous catégories...).

Je suis à la recherche d'un tutoriel compler d'installation et d'utilisation. Où alors un tutoriel sur une autre méthode tout aussi efficace.

Merci de votre aide.

3 réponses


Alors le second est basé sur le premier de toutes façons donc c'est a peu prêt la même chose :p

Perso j'opterais pour faire un truc à la mano, c'est juste des relations BelongsTo<->HasMany

Je n'ai pas trouvé de tutos pour ces paquets, pour le mano il y'a celui la qui est assez récent

https://www.youtube.com/watch?v=-dj1xKG377c

les cours récents se font rares sur Laravel, faut laisser le temps à la commu Laravel x)

Strappal
Auteur

Bonjour Popotte,
Merci de ta réponse.
L'un comme l'autre ne sont plus vraiment maintenu et je me retrouve avec des erreurs qui doivent être certainement gérable pour un initié.
Je me retrouve avec des classes ou des méthodes qu'il n'arrive pas à appeler (problème dans l'arborescence je pense) alors qu'elles existent puisque je les retrouve avec la fonction rechercher de VSC.
Je voulais vraiment utilisé la R.I. parce qu'à mon sens, c'est le meilleur moyen d'organiser correctement les catégories.
J'ai cherché à écrire mes fonctions à la main mais je pêche sur l'ajout d'une catégorie et les méthodes de calculs malgré tous les tutos consultés.
Je vais encore patienter un peu.

Avec plaisir ;)

Alors pour laravel-trees le développeur a arreté de publier des releases, il utilise des tags, le packet est bien a jour, dernier Tag il y a 21 jours ;)

Après pour les erreurs ça peut arriver oui ^^'

Alors oui pour faire des catégories et sous-catégories faut être à l'aise avec les relations

Après ça se fait en double boucles

Dans la migration SubCategories faut rajouter cette ligne:

$table->foreignId(Category::class)->constrained();

Dans le model Category:

public function subCategories(): HasMany
{
    return $this->hasMany(SubCategory::class);
}

Dans le model SubCategory:

public function category(): BelongsTo
{
    return $this->belongsTo(Category::class);
}

Dans le controlelr qui retournera la view avec les categories et subcat:

public funciton index()
{
    return view('home.index')->with([
        'categories' => Category::all(),
    ]);
}

Et dans blade:

@foreach($categories as $category)
    <h2>{{ $category->name }}</h2>

    @foreach($category->subCategories as $subCategory)
        <p>{{ $subCategory->name }}</p>
    @endforeach
@endforeach

Avec ça tu as tout le système de category/subcategory :p