Verwenden Sie Limit und Offset in Doctrine2 Abfrage

Ich versuche zu tun, die Paginierung, aber es ist ein Fehler:

[Syntax Error] line 0, col 57: Fehler: Expected end of string, 'limit'

Ich bin mir nicht ganz sicher, ob dies die richtige syntax (und-Logik), um meine Abfrage:

public function getFriendsFromTo ($user, $limit, $offset)
{
     return $this->getEntityManager()
        ->createQuery('SELECT f FROM EMMyFriendsBundle:Friend f WHERE f.user='.$user.' limit '.$limit. 'offset' .$offset)
        ->getResult();
}

Freunde und Nutzer werden im Zusammenhang manyToOne und oneToMany, so dass in der Freunde-Tabelle gibt es ein Feld user_id.

Dies ist in meinem controller:

$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); 

Ich weiß, dass es dumm und sogar falsch (vor allem der Dritte parameter $page*$FR_PER_PAGE), aber ich wollte nur versuchen, wenn die Abfrage funktioniert, und das ist es nicht.

InformationsquelleAutor der Frage Faery | 2012-08-30

Schreibe einen Kommentar