首页 > 解决方案 > 学说得到最后一条消息

问题描述

我在数据库中有这个模式,以及如何获取最后一条消息,并且字段 is_seen 是 false ,对于接收者 10 来说不是 true .. 模式数据库:

在此处输入图像描述

我创建了这个查询,但我收到了接收者 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();
  }

标签: symfonydoctrine-ormdoctrine

解决方案


嗯,所以如果我理解你是正确的,你想使用以下条件:

  1. 接收者 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');

应该做的伎俩。


推荐阅读