[DDC-2318] Count all element Created: 25/Feb/13  Updated: 25/Feb/13  Resolved: 25/Feb/13

Status: Closed
Project: Doctrine 2 - ORM
Component/s: None
Affects Version/s: None
Fix Version/s: None
Security Level: All

Type: New Feature Priority: Minor
Reporter: Benjamin Assignee: Marco Pivetta
Resolution: Invalid Votes: 0
Labels: None



I'm sorry if it is not the right place to ask and suggest but I was not sure where to contact you.

I have been trying to make a pagination of articles without using DQL. For me, it defies the purpose of the ORM to do DQL for things like pagination.

After some research I found the method findBy() which allows me to select X element starting at position Y.
Yet, to know the number of pages, I needed to count the number of elements in my database and I didn't find any count() method in the Entity Repository.

I was wondering why there is no count method ?

Moreover, I did my own entity Repository that extends the default one to have a count method like this :

use Doctrine\ORM\EntityRepository;

class CountableEntityRepository extends EntityRepository {
     * returns the number of entity's rows
     * @return int
    public function count() {
        $query = $this->createQueryBuilder('e')->select('count(e)')->getQuery();
        return $query->getSingleScalarResult();

as I am new to Doctrine I don't know if this is a good solution, if it is not, could you add a count method to the repository ?

Thank you very much.


Comment by Marco Pivetta [ 25/Feb/13 ]


First of all, consider that this is an issue tracker, not a Q&A platform (use StackOverflow, the mailing list or IRC for that).

Anyway, the use case seems reasonable to me, but consider that Doctrine comes with a powerful paginator ( http://docs.doctrine-project.org/en/latest/tutorials/pagination.html )

I don't think this logic fits repositories by default.

Generated at Wed Sep 02 09:11:07 EDT 2015 using JIRA 6.4.10#64025-sha1:5b8b74079161cd76a20ab66dda52747ee6701bd6.