j'ai plusieurs HABTM comme ceux-ci:CakePHP paginera multiples HABTM
// modèle utilisateur
var $ hasMany = array ('Post');
// Post-modèle
var $ hasAndBelongsToMany = tableau ('Category', 'Tag');
// Modèle de catégorie
var $ hasAndBelongsToMany = array ('Post');
// Modèle de balise
var $ hasAndBelongsToMany = array ('Post');
J'ai essayé d'aller chercher tout le courrier avec son utilisateur et ses balises (dans une certaine catégorie), d'une façon ou d'une autre si je récupère des balises, le résultat est faux.
$this->paginate = array
(
'Post' => array
(
'limit' => 2,
'fields' => array(
'Post.title', 'Post.content', 'Post.slug', 'Post.created',
'Tag.name',
'User.username', 'User.created', 'User.post_count', 'User.avatar_file_name'),
'joins' => array
(
array(
'table' => 'categories_posts',
'alias' => 'CategoriesPost',
'type' => 'inner',
'conditions'=> array('CategoriesPost.post_id = Post.id')
),
// FETCH USER
array(
'table' => 'users',
'alias' => 'User',
'type' => 'inner',
'conditions'=> array('Post.user_id = User.id')
),
// FETCH TAGS
array(
'table' => 'posts_tags',
'alias' => 'PostsTag',
'type' => 'inner',
'conditions'=> array('PostsTag.post_id = Post.id')
),
array(
'table' => 'tags',
'alias' => 'Tag',
'type' => 'inner',
'conditions'=> array('Tag.id = PostsTag.tag_id')
),
array(
'table' => 'categories',
'alias' => 'Category',
'type' => 'inner',
'conditions'=> array('Category.id = CategoriesPost.category_id', 'Category.slug' => $slug)
)
)
)
);
$posts = $this->paginate();
Quelqu'un peut-il donner une solution puisque je suis un débutant? un grand merci ...
Que voulez-vous dire par «mauvais»? Pouvez-vous enregistrer le jeu de résultats? – sibidiba
Eh bien, si je récupère Tag, le résultat est une boucle du premier message. Mais si aucune balise n'a été récupérée, elle renvoie tous les messages dans un résultat correct. – izmanromli