Bonjour,

Voila je rencontre un petit problème avec mon code.

Ce que je fais

Bonjour, j'ai un problème au niveau de la page users/view la page qui permet de visualiser le profil d'un utilisateur. Cette page affiche aussi les posts lié à l'utilisateur. Le problème c'est que si l'utilisateur à posté 1000 posts, les 1000 posts vont s'afficher sur la même page ... (sans pagination)

UsersController.php

public function view($id = null)
    {
        $user = $this->Users->get($id, [
            'contain' => ['Posts']
        ]);

        $this->set('user', $user);
        $this->set('_serialize', ['user']);
    }

Ce que je veux

Je souhaiterais paginer cette page, vous voyez comment faire ? Es ce possible ? Merci d'avance

2 réponses


Bonsoir.
Pourquoi tu ne le fais pas tout simplement avec deux requêtes ?
La première qui récupère les informations de l'utilisateur et la seconde qui récupère ses posts avec la pagination.
Par exemple :

$user = $this->Users->get($id);
$posts = TableRegistry::get('Posts')->find()->where(['user_id' => $id]);
$posts = $this->paginate($posts);

Puis tu envoies les deux variables à la vue.
De toute manière, tant que tu n'utilises pas le composant dans ton action, tu ne pourra pas utiliser son helper dans la vue correspondante.

Marco L
Auteur

Merci beaucoup ça marche niquel ! :)