学说得到最后一条信息

时间:2019-02-23 21:29:51

标签: symfony doctrine-orm doctrine

我在数据库中有此架构,例如,如何获取最后一条消息和字段is_seen为false对接收器10而言不是true 模式数据库:

enter image description here

我创建了此查询,但是我收到了接收方10的第一条消息:

查询:

public function messagesByReceiver($user) {

    /** @var \Doctrine\ORM\Query */
   $query = $this->createQueryBuilder('a')
      ->select('a')
      ->where('a.receiver = :user')
      ->setParameter('user', $user)
      ->groupBy('a.sender')
      ->orderBy('a.createdAt','DESC')
    ;


   return $query->getQuery()->getResult();
  }

1 个答案:

答案 0 :(得分:2)

嗯,所以,如果我了解您的要求,请使用以下条件:

  1. receiver_id是10
  2. is_seen为假

如果是用例,那么

$query = $this->createQueryBuilder('a')
    ->select('a')
    ->where('a.receiver = :user')
    ->andWhere('a.is_seen = 0')
    ->setParameter('user', $user)
    ->groupBy('a.sender')
    ->orderBy('a.createdAt','DESC');

应该做到这一点。