Pagination dans le controller Users

Par Marco L, il y a 8 ans


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

Lartak, il y a 8 ans

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, il y a 8 ans

Merci beaucoup ça marche niquel ! :)