如何使用doctrine 2查询生成器选择字段

Dr.*_*all 1 php mysql orm symfony doctrine-orm

我在Symfony2存储库中执行以下查询.查询看起来像

                 $q = $this
                    ->createQueryBuilder('m')
                    ->select(array('m.reciever','m.created','m.id','m.subject'))
                    ->where('m.reciever = ?1')
                    ->orderBy('m.id','DESC')
                    ->setMaxResults( '?2' )
                    ->setFirstResult( '?3' )
                    ->setParameter(1,$id)
                    ->setParameter(2,$itemsPerPage)
                    ->setParameter(3,$offset)
                    ->getQuery();
Run Code Online (Sandbox Code Playgroud)

其中reciever,created,id和subject是我的消息实体的字段.我不需要指定我选择的实体.我一直得到的错误就是......

[Semantical Error] line 0, col 12 near 'reciever, m.created,': Error: Invalid PathExpression. Must be a StateFieldPathExpression. 
Run Code Online (Sandbox Code Playgroud)

我不确定状态字段路径表达式是什么或语法可能是什么.似乎一切都应该是正确的.

S.T*_*ane 7

使用该select()方法时,将覆盖默认值$this->createQueryBuilder('m').这就是你丢失m别名的原因.要避免这种情况,请在方法中使用addSelect()或指定:aliasfrom()

->from('Bundle:Entity', 'ALIAS')
Run Code Online (Sandbox Code Playgroud)