Pagination

Par flinstone, il y a 13 ans


Salut,
est-ce possible de paginer un tableau construit par soi même ??
Merci.

14 réponses

flinstone, il y a 13 ans

et comment vais-je définir la limite ??

Digikube, il y a 13 ans

Dans ton controller

ClementLanot, il y a 13 ans
$this->paginate=array('Tableau'=>array(
'limit'=>'20'
));
ClementLanot, il y a 13 ans

C'est à dire ?

flinstone, il y a 13 ans

c-à-d comment profiter du Paginator cakephp pour paginer ce tableau, sinon s'il y a d'autres Helpers.

Digikube, il y a 13 ans

Bien sur au lieu d'afficher tes résultats dans des div ou paragraphe tu les met dans un tableau et la logique du Paginator est identique.

flinstone, il y a 13 ans

@clement.lanot
avec cette syntaxe:

$this->paginate= array($messages => array('limite' => 1))

Warning (2): Illegal offset type [APP\Controller\messagesController.php, line ..]
et avec cette syntaxe :

$this->paginate= array('messages' => array('limite' => 1));

pas de warning mais pas de pagination !!

Digikube, il y a 13 ans

Enleves le "e" de "limite" comme ça :

$this->paginate= array($messages => array('limit' => 1))
flinstone, il y a 13 ans

toujours le même Warning (2): Illegal offset type

Digikube, il y a 13 ans

Tu peux copier/coller ton code de ton action complète stp ?

flinstone, il y a 13 ans
public function membre_index(){
        $userId = AuthComponent::user('id');
        $this->loadModel('MessageUser');
        $messagesusers = $this->MessageUser->find('all', array(
            'conditions' => array(
                'user_id' => $userId),
            'fields' => 'message_id, created'
            ));
        $lesIdMessages = array();
        foreach ($messagesusers as $key => $value) {
            $lesIdMessages$value'MessageUser']'created']] = $value'MessageUser']'message_id'];
        }
        $tousLesMessages = $this->Message->find('all', array(
            'recursive' => -1));
        $messages = array();
        foreach ($tousLesMessages as $k => $v) {
            if(!empty($lesIdMessages)){
                foreach ($lesIdMessages as $kk => $vv) {
                    if($v'Message']'id'] == $vv){
                        $messages$kk] = $v'Message']'content'];
                        unset($lesIdMessages$kk]);
                    }
                }
            }else{
                break;
            }
        }
        krsort($messages);
        //$this->paginate= array($messages => array('limit' => 1));
        $this->set('messages', $messages);
    }
flinstone, il y a 13 ans

@Aiftea: alors ?? :)

Digikube, il y a 13 ans

Je pensais que tu sortait ta variable $message d'un modèl mais c'est pas le cas du coup je ne pense pas que ce soit faisable de le paginer en utilisant cake.Mais ca reste faisable en dehors de Cake dans ta vue par exemple, je te laisse aller voir de ce coté là :
http://www.sprymedia.co.uk/dataTables-1.4/example_zero_config.html

flinstone, il y a 13 ans

ok. Merci bien