Doctrine :FetchAll() with limits

Dimitri picture Dimitri · Feb 1, 2014 · Viewed 20.5k times · Source

I want to make a fetchAll() with limit ? Do you know if it's possible with the entity manager of symfony2 ?

My current code (Fetch all, without limit):

$repository = $this->getDoctrine()->getRepository('MyBundle:Download');
$product    = $repository->findAll();

Thanks you all. Best regards,

EDIT:

$em = $this->getDoctrine()->getRepository('MyBundle:Download');
$ouput = $em->findBy(array(), array('id' => 'DESC'),5);

Return the 5 last rows.

Thanks all.

Answer

Cerad picture Cerad · Feb 1, 2014

It's often instructive to check the source code.

Doctrine\ORM\EntityRepository 

public function findAll()
{
    return $this->findBy(array());
}
public function findBy(array $criteria, array $orderBy = null, $limit = null, $offset = null)
{
    $persister = $this->_em->getUnitOfWork()->getEntityPersister($this->_entityName);

    return $persister->loadAll($criteria, $orderBy, $limit, $offset);
}