Salut... je crois que j'ai un gros soucis...
J'ai adopté le modèle MVC pour un projet, mais je me suis vite rendu compte que j'ai de gros soucis... Entre autres:
1 - Et si j'en avait une dizaine de catégories, je fais comment ?
un controller pour chaque?
2 - Avec deux profondeurs, j'arrive à gérer mais au delà... je bugg
Merci :)

6 réponses


kewai
Réponse acceptée

Simplement car tu ne vérifies pas l'intégrité de tonurl, car tu ne vérifies que le dernier paramètre.
Ce que tu peux faire c'est une fonction qui vérifie tous les parents, je suis même pas sur qu'avec un jointure tu peux faire une boucle optimisée, tu risques de consumer un beau paquet de requêtes...

quoi que tu possèdes ton fil d'ariane par conséquent tu peux faire quelque chose comme une requete qui selectionne les différents ID (IN je crois et pas WHERE)
avoir les résultats du plus bas au plus haut (enfants => grand parent)
et de faire un if($data[$i]['id_cat'] === $data[$j] ) dans une boucle

en démarrant $i = 0; et $j= 1

vérifier que le $data[$j].. existe sinon ca veut dire qu'on a atteint le premier article.

J'irai comme un gros bourrin like that !

Bonjpur,

  1. Non un controleur pour les catégories suffit, puisque chaque catégories à le même role, c'est à dire d'appeller les éléments qui lui appartiennes.
  2. Qu'est que vous appellez profondeur ?

Merci...
1- J'argumente... Apres un tuto sur Grafikart.fr, http://www.grafikart.fr/tutoriels/php/mvc-model-vue-controller-php-132, si j'avait bien compris, Grafikart a crée un controller "tuto"..., il l'instanciait puis appelait l'action demandée. D'ou ma question pourquoi

Class tuto {
// code...
}

2- http://exemple.com/categorie/sous-categorie/sous-sous-categorie/page-demandee.html
Voila un peu ce que j'entendais par "profondeurs"
Merci :)

Il faut voir si c'est vraiment pertinent d'avoir autant d'information dans l'url...
Selon moi non, ca pourrait peut-être nuire ton référencement naturel.

Après tout dépend de ce que tu veux, si tu ne prevois aucune limite de sous catégorie il vaut mieux que tu n'en fasses qu'une méthode. Même si il sera assez brouillon et rempli de boucle et condition.
Si c'est un nombre limité et que tu peux, par-exemple poster un articles que dans les derniers enfants, alors tu peux faire 2 méthodes voir 2 controller si tu y tiens.

Qaudn tu fais un list de tes enregistrements, si il est dynamique, tu dois toujours prévoir ton comportement par défaut.
ici c'est il liste toutes les catégories du premier niveau.
Tu sélectionnes une url dans laquelle tu fais passer le slug et id. (c'est mieux) et là ton comportement c'est faire une selection en utilisant le ID de la catégorie sur pour chercher les catégories (et articles si tu mélanges les deux) via l'id_parent.

Pour gérer les différents niveaux, c'est tricky, la solution la plus simple pour moi c'est que ton systeme de routing te retourne tous les parametres dans un tableau, tu sélectionnes la dernière entrée de ton tableau pour faire la requete. Et tous les autres paramètres pour l'url constitue ton fil d'ariane.

Kewai "...retourne tous les parametres dans un tableau, tu sélectionnes la dernière entrée de ton tableau pour faire la requete..." effectivement, vu la complexité de gerer les sous-categories, j'ai opté pour cette methode que t'as proposé. Mais avec elle, le hic, cest que quand je provoque volontairement une erreur (http://exemple.com/jeux-videos/le-jeu-son-id.html devient http://exemple.com/j-videos/le-jeu-son-id.html par exemple), la requete aboutit a une 200 et non une 404 tout de meme. Une idee?

kewai... Cool j'essaies ton procédé puis jt'envoie le retour... Merci :)