Doctrine查询语言ORDER BY使用外部实体中的字段

时间:2017-07-14 02:59:46

标签: doctrine-orm dql

我有3个人:

  1. 用户
  2. 会话
  3. SessionInProgress
  4. 和一些协会:

    1. 双向许多User到多个SessionInProgressSessionInProgress有一个$users数组,用于存储会话中涉及的用户 - 导师和学生。User实体还通过数组$sessions
    2. 引用其正在进行的会话
    3. 双向一个Session到多个SessionInProgress(给定会话可能有多个会话正在进行中,正在进行的会话使用Session返回其对应的$session
    4. 我想获取给定用户正在进行的会话,由$num中使用DQL的Session字段排序,所以我想我需要一个DQL,如:

      SELECT s FROM SessionInProgress sip JOIN sip.session s WHERE :givenUser MEMBER OF sip.users ORDER BY s.num ASC 
      

      所以我写道:

      public function findAllOrderedByNum($user)
      {
          $qb = $this->getEntityManager()->createQueryBuilder();
          return $qb
                  ->select('s')
                  ->from('SessionInProgress', 'sip')
                  ->join('sip.session', 's')
                  ->where($qb->expr()->in('?1', 'sip.users'))
                  ->orderBy('s.num', 'ASC')
                  ->setParameter(1, $user)
                  ->getQuery()
          ->getResult();
      }
      

      这是对的吗?我对DQL或QueryBuilder语法

      不是很熟悉

0 个答案:

没有答案