Précédent   Forum des professionnels en informatique > PHP > Bibliothèques et frameworks > CakePHP
CakePHP Forum d'entraide sur le framework PHP CakePHP
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 27/02/2011, 13h01   #1
Invité de passage
 
Inscription : juillet 2009
Messages : 13
Détails du profil
Informations forums :
Inscription : juillet 2009
Messages : 13
Points : 3
Points : 3
Par défaut Pagination après un find avec relation HABTM

Bonjour à toutes et à tous,

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)

Voici mes deux models (situé dans app/models)
Code :
1
2
3
4
5
6
7
8
 
class Post extends AppModel{        
    var $hasAndBelongsToMany = array('Category');
}
 
class Category extends AppModel{        
    var $hasAndBelongsToMany = array('Post');
}
Et mon PostController :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
class PostsController extends AppController{
    var $paginate = array(
        'Post' => array(
            'limit' => 1,
            'order' => array('Post.created' => 'Desc')
        )
    ); 
    function index(){    
        $posts_list = $this->paginate('Post');
        $this->set('posts_list', $posts_list);
    }
    function category($category_id = null){
        if($category_id != null){
            $this->Post->bindModel(array('hasOne' => array('CategoriesPost')));
            $posts_list = $this->Post->find('all', array(        
                'conditions' => array('CategoriesPost.category_id' => $category_id)
            ));
 
            $this->set('posts_list', $posts_list); 
            $this->render('index');    
        }
    }
}
Mes catégories sont listés dans une page et lorsque je clique sur une catégorie, j'affiche les posts relatifs à cette catégorie avec la méthode

Code :
function category ($category_id = null){}
Seulement du coup la pagination ne fonctionne plus. J'aimerais donc réutiliser la pagination en prenant en compte ce tri préalable.

Je me doute bien qu'il faille redéfinir paginate dans la fonction category mais je ne sais pas comment faire avec plusieurs catégories.

Avez-vous une idée ?

Merci de votre aide.
rdeoliveira est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 17h19.


 
 
 
 
Partenaires

Hébergement Web