8796 sujets

Développement web côté serveur, CMS

Bonjour à toutes et à tous,

J'ai un problème sur CakePHP concernant les relations HABTM (HasAndBelongsToMany).
J'ai une table Posts. Chaque post peut être relier à une ou plusieurs catégories. Une catégorie peut appartenir à plusieurs posts.

En terme de MCD cela donne ceci (en simplifié).
posts(id, title, content)
categories(id, name)
categories_post(category_id, post_id)

(en rouge les clés primaires)

Voici mes deux models (situé dans app/models)

class Post extends AppModel{		
	var $hasAndBelongsToMany = array('Category');
}

class Category extends AppModel{		
	var $hasAndBelongsToMany = array('Post');
}


Et mon PostController :

class PostsController extends AppController{
	function category($id = null){	
	}
}


Mes catégories sont listés dans une page et lorsque je clique sur une catégorie, j'aimerais afficher les posts liés à cette catégorie (avec la fonction category dans laquelle je passe l'id de la catégorie sélectionnée). Et c'est la tout mon problème, je n'arrive pas à faire appel à find pour faire apparaitre ces posts.

Quelqu'un peut-il m'expliquer de manière claire et simple comment procède-t-on ?

PS : j'ai déjà lu la doc, des forums (anglais/français) et je n'ai pas trouvé d'explication claire et précise.

Merci de votre aide.
Modifié par ashesheart (25 Feb 2011 - 15:08)