Symfony 如何使用存储库获取最新条目

Symfony 如何使用存储库获取最新条目,symfony,doctrine-orm,doctrine,Symfony,Doctrine Orm,Doctrine,我在Doctrine2中遇到了一件非常简单的事情,我不知道如何使用findByDate方法从存储库中检索实体的最后一个条目。 我在条令文档或谷歌中找不到如何做到这一点…试试: $date = new \Datetime(); $em = $this->getDoctrine()->getManager(); $lastEntity = $em ->getRepository('MyBundle:Entity')

我在Doctrine2中遇到了一件非常简单的事情,我不知道如何使用findByDate方法从存储库中检索实体的最后一个条目。 我在条令文档或谷歌中找不到如何做到这一点…

试试:

$date = new \Datetime();

$em = $this->getDoctrine()->getManager();

$lastEntity = $em
                 ->getRepository('MyBundle:Entity')
                 ->findBy(array('date' => $date->format('Y-m-d')));

如果MySQL中的字段存储为
日期

,则必须执行按日期排序的查询,并返回第一个:

class MyEntityRepository extends EntityRepository
{
  function getLastEntity() {
    return $this->createQueryBuilder('e')->
       orderBy('e.date', 'DESC')->
       setMaxResults(1)->
       getQuery()->
       getOneOrNullResult();      
  }
}

您也可以尝试max(id)功能这是按日期过滤,但我认为OP希望获得最新条目(即按日期描述排序时的第一个结果)。