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
Du musst angemeldet sein, um einen Kommentar abzugeben.
NÖ. Verwendung:
InformationsquelleAutor der Antwort Thomas K
InformationsquelleAutor der Antwort vundek
Können Sie
findBy
3. und 4. Parameter der Methode, der Lehre repository, dielimit
undoffset
.Hier ist die Methode-definition:
findBy(
array $criteria,
array $orderBy = null,
integer|null $limit = null,
integer|null $offset = null
)
Quelle: http://www.doctrine-project.org/api/orm/2.2/class-Doctrine.ORM.EntityRepository.html
InformationsquelleAutor der Antwort nheraly
können Sie auch
$query->getSingleResult();
InformationsquelleAutor der Antwort matzeihnsein