DOCTRINE 2 – nastavení LIMIT (setMaxResults)

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
Joacim
Člen | 229
+
0
-

Zdravím, nevím co dělám špatně, ale potřeboval bych nastavit LIMIT pro DB příkaz (např jen 10 řádků), ale použití $qb->setMaxResults($limit); nemá žádný vliv

UserFacade

public function getLastUserLoginInfo(User $user, $limit) {
    $query = new UserLoginInfoListQuery();
    $query->whereUserId($user->id)->orderById('DESC')->setLimit($limit);
    return $this->em->getRepository(UserLoginInfo::class)->fetch($query);
}

UserLoginInfoListQuery

class UserLoginInfoListQuery extends QueryObject {

    private $filters = array();


    public function doCreateQuery(Queryable $repository) {
        $qb = $repository->createQueryBuilder()
                ->select("uli")
                ->from(UserLoginInfo::class, "uli");

        foreach ($this->filters as $filter)
            $filter($qb);
        return $qb;
    }


    public function setLimit($limit = 10) {
        $this->filters[] = function (QueryBuilder $qb) use ($limit) {
            $qb->setMaxResults($limit);
        };
        return $this;
    }

	...........

}
David Matějka
Moderator | 6445
+
+1
-

QueryObject zahazuje setMaxResults: https://github.com/…ryObject.php#L165

vyuzij applyPaging na vracenem result setu: https://github.com/…resultset.md#…

Joacim
Člen | 229
+
0
-

David Matějka napsal(a):

QueryObject zahazuje setMaxResults: https://github.com/…ryObject.php#L165

vyuzij applyPaging na vracenem result setu: https://github.com/…resultset.md#…

Super, díky moc