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
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
QueryObject zahazuje setMaxResults: https://github.com/…ryObject.php#L165
vyuzij applyPaging na vracenem result setu: https://github.com/…resultset.md#…
- Joacim
- Člen | 229
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