que estoy tratando de hacer la paginación, pero hay un error:Límite de uso y Offset en la consulta Doctrine2
[Syntax Error] line 0, col 57: Error: Expected end of string, got 'limit'
No estoy seguro si esto es la sintaxis correcta (y la lógica) para hacer mi consulta:
ManyToOnepublic function getFriendsFromTo ($user, $limit, $offset)
{
return $this->getEntityManager()
->createQuery('SELECT f FROM EMMyFriendsBundle:Friend f WHERE f.user='.$user.' limit '.$limit. 'offset' .$offset)
->getResult();
}
amigos y usuarios están relacionados y OneToMany, por lo que en la mesa de amigos hay un campo - user_id.
Esto está en mi controlador:
$user = $this->get('security.context')->getToken()->getUser();
$id = $user->getId();
$friends = $user->getFriends();
$result = count($friends)
$FR_PER_PAGE = 7;
$pages = $result/$FR_PER_PAGE;
$em = $this->getDoctrine()->getEntityManager();
$friends = $em->getRepository('EMMyFriendsBundle:Friend')
->getFriendsFromTo($id, $FR_PER_PAGE, $page*$FR_PER_PAGE);
Sé que es estúpido e incluso mal (especialmente el tercer parámetro a ser $page*$FR_PER_PAGE
), pero yo sólo quería probar si la consulta funciona, y didn' t.
¿Qué quería decir que no funcionó? obtener algún error? También debería usar 'setParameter (" usuario ", $ usuario)' en lugar de insertarlo directamente en el DQL. Además, sería bueno ver las definiciones de su entidad. EDITAR: acaba de ver la edición. Debería haber un espacio adjunto para 'compensar' – Flukey
Sí, me sale un error; está en el comienzo de la pregunta. – Faery
Este paquete puede ser de su interés: http://knpbundles.com/KnpLabs/KnpPaginatorBundle – Flukey