Pagination sur relation HABTM

Par Romano83, il y a 11 ans


Salut à tous,
je rencontre actuellement un petit problème sur les relations HABTM.
J'ai mis en place sur mon blog le plugin Taxonomy pour la gestion de tag et j'aimerais lister tous mes posts qui possèdent un tag précis.
J'ai donc créé une fonction qui permet cela mais je n'arrive pas à filtrer les enregistrements...
Voici la structure des mes tables :
Table term :

Table term_relationships :

1 réponse

Romano83, il y a 11 ans

Une fois de plus, je m'autorépond ^^
En fait, c'était tout simple mais il suffisait d'attaquer directement les modèles liés et faire quelques requêtes pour trouver plus facilement les articles...
Au cas où, voici la fonction si une personne se retrouve avec le même problème :

public function listTags($slug){ $tag = $this->Post->Term->find('first', array( 'conditions' => array('slug' => $slug) )); if(empty($tag)) throw new NotFoundException('Aucun mot clé ne correspond à ce nom'); $listPosts = $this->Post->TermR->find('all', array( 'conditions' => array('term_id' => $tag['Term']['id'], 'ref' => 'Post') )); $posts_id = Set::Combine($listPosts, '{n}.TermR.ref_id', '{n}.TermR.ref_id'); $posts = $this->Paginate('Post', array('Post.online' => 1, 'Post.id' => $posts_id)); $this->set('posts', $posts); $this->render('index'); }