Doctrine orm 条令使用外部实体中的字段查询语言顺序
我有3个实体:Doctrine orm 条令使用外部实体中的字段查询语言顺序,doctrine-orm,dql,Doctrine Orm,Dql,我有3个实体: 使用者 会议 会话进程 以及一些协会: 双向多用户对多会话进程(会话进程有一个$users数组,存储会话中涉及的用户-导师和学生。用户实体还通过数组$sessions引用正在进行的会话) 双向一个会话到多个会话进程(给定会话可能有多个正在进行的会话,而正在进行的会话使用$Session引用其相应的会话) 我想使用DQL获取给定用户正在进行的会话,按Session中名为$num的字段排序,因此我想我需要一个DQL,如: SELECT s FROM SessionInProgress
用户
对多会话进程
(会话进程
有一个$users
数组,存储会话中涉及的用户-导师和学生。用户
实体还通过数组$sessions
引用正在进行的会话)会话
到多个会话进程
(给定会话可能有多个正在进行的会话,而正在进行的会话使用$Session
引用其相应的会话
)Session
中名为$num
的字段排序,因此我想我需要一个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
语法,问题是什么?你得到了错误的数据吗?你有错误吗?没有,我是问这是否有效。我还没有完成所有的控制器逻辑,所以我现在无法在任何地方执行这个DQL。我觉得很好,有错误吗?