Php 如何在Symfony2中显示第一个发布的需求?

Php 如何在Symfony2中显示第一个发布的需求?,php,symfony,Php,Symfony,我只需要展示第一次发布的需求: $demand = $em->getRepository('DemandsBundle:Demands')->findBy(array('date' => )? 我在这个请求中遇到了一个问题,有人能告诉我如何通过findby重播数据库中的第一个请求吗 在控制器中: $entity->setCreatedAt(new\DateTime('now') 在实体中: /** * @var \DateTime * * @ORM\Column(nam

我只需要展示第一次发布的需求:

$demand = $em->getRepository('DemandsBundle:Demands')->findBy(array('date' => )?
我在这个请求中遇到了一个问题,有人能告诉我如何通过findby重播数据库中的第一个请求吗

在控制器中:

$entity->setCreatedAt(new\DateTime('now')

在实体中:

/**
 * @var \DateTime
 *
 * @ORM\Column(name="created_at", type="datetime", nullable=false)
 */
private $createdAt;

使用
findOneBy
代替
findBy

您可以通过
date asc
将结果作为第二个参数传递给findBy函数,然后将设置
限制的第一行作为第三个参数

以下是由
函数查找的
函数的定义

公共函数findBy(数组$criteria,数组$orderBy=null,$limit=null,$offset=null)

以下是您案例的示例:

$demand = $em->getRepository('DemandsBundle:Demands')->findBy(array(), array('date' => 'asc'), 1);
否则

您还可以使用
findOneBy
函数,其中您还可以跳过
limit
参数,因为它只返回一个结果

公共函数findOneBy(数组$criteria,数组$orderBy=null)

小例子:

$demand = $em->getRepository('DemandsBundle:Demands')->findOneBy(array(), array('date' => 'asc'));
请尝试以下代码:

     $em = $this->getDoctrine()->getManager();
 $query = $em->createQuery(
 'SELECT p.content , p.createdAt , p.id
 FROM PublishDemandsBundle:Demands p

 ORDER BY p.createdAt 

 '
);

$demands = $query->setMaxResults(1)->getResult();