我有3个人:
和一些协会:
User
到多个SessionInProgress
(SessionInProgress
有一个$users
数组,用于存储会话中涉及的用户 - 导师和学生。User
实体还通过数组$sessions
)Session
到多个SessionInProgress
(给定会话可能有多个会话正在进行中,正在进行的会话使用Session
返回其对应的$session
我想获取给定用户正在进行的会话,由$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
语法