createQueryBuilder('t') ->where('t.wallet = :wallet') ->setParameter('wallet', $wallet) ->orderBy('t.id', 'DESC') ->setFirstResult(($page - 1) * $limit) ->setMaxResults($limit) ->getQuery() ->getResult(); } public function countByWallet(SmsWallet $wallet): int { return (int) $this->createQueryBuilder('t') ->select('COUNT(t.id)') ->where('t.wallet = :wallet') ->setParameter('wallet', $wallet) ->getQuery() ->getSingleScalarResult(); } public function save(SmsWalletTransaction $tx): void { $this->getEntityManager()->persist($tx); $this->getEntityManager()->flush(); } }