Paginación con Doctrine en Codeigniter

Paginación con Doctrine

Llevar a cabo la paginación con Doctrine es sencillo siempre que las relaciones involucradas no sean complejas, en otro caso se puede complicar bastante por temas de rendimiento, en este tutorial vamos a ver cómo podemos crear una paginación con Doctrine en Codeigniter, es decir, haremos la consulta con Doctrine y utilizaremos la clase pagination de Codeigniter.

Para este ejemplo trabajaremos con las entidades Post y Comment, así podremos paginar los posts y saber la cantidad de comentarios que existen en cada uno de ellos.

Para realizar la paginación con Doctrine debemos utilizar DQL (Doctrine Query Language) para poder realizar la consulta y establecer tanto el limit como el offset.

Paginación con Doctrine

Lo primero que debemos hacer es definir la entidad Post.


La anterior es una sencilla entidad de Doctrine que establece una relación @OneToMany con la entidad Comment, es decir, un post puede tener muchos comentarios, a la que le hemos asociado un repositorio, ahora vamos a crear la entidad Comment.


La entidad Comment tiene una relación @ManyToOne con la entidad Post, es decir, muchos comentarios pueden pertenecer a un post.

Ahora vamos a ver lo interesante, crear la paginación con Doctrine, para ello crea el repositorio PostRepository y añade el siguiente código.


De esta forma tan sencilla creamos una instancia de la clase Paginator y ya estamos en disposición de recorrer y mostrar los posts paginados, el segundo parámetro de la clase Paginator sirve para decirle si la consulta va a tener una join to-many.

Paginación con Doctrine en Codeigniter

Ya sólo nos queda realizar la paginación con Codeigniter, para ello crea un controlador y añade el siguiente código.


Simplemente debemos utilizar el método count de la clase ArrayCollection para obtener el número de posts pasado a total_rows, el resto ya debemos conocerlo.

Si quieres darle el aspecto de la paginación de bootstrap a codeigniter simplemente sigue este tutorial.

Ahora crea la vista blog y añade el siguiente código donde mostramos paginados todos los posts junto con sus comentarios.


De esta forma tan sencilla tenemos los posts y sus comentarios paginados, todo gracias a las relaciones que hemos establecido en sus respectivas entidades, pero debe quedar claro que si tenemos miles de registros esto puede volverse muy pesado y tener un rendimiento no muy óptimo.

Uso de cookies

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información. ACEPTAR

Aviso de cookies