[英]How to select fields using doctrine 2 query builder
我在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();
收件人,創建的ID和主題是我的郵件實體中字段的一部分。 我不需要指定要從中選擇的實體。 我不斷收到的錯誤是這樣的...
[Semantical Error] line 0, col 12 near 'reciever, m.created,': Error: Invalid PathExpression. Must be a StateFieldPathExpression.
我不確定狀態字段路徑表達式是什么或語法可能是什么。 似乎一切都應該正確。
使用select()
方法時,將覆蓋$this->createQueryBuilder('m')
的默認方法。 這就是為什么您丟失m
別名的原因。 為了避免這種情況,請使用addSelect()
或在from()
方法中指定alias
:
->from('Bundle:Entity', 'ALIAS')
你有這樣的東西:=?
$q = $this
->createQueryBuilder()
->select('m.reciever, m.created ,m.id , m.subject')
->from('/Acme/Entity/DemoEntity', 'm')
->where('m.reciever = ?1')
->orderBy('m.id','DESC')
->setMaxResults( '?2' )
->setFirstResult( '?3' )
->setParameter(1,$id)
->setParameter(2,$itemsPerPage)
->setParameter(3,$offset)
->getQuery();
我不確定,但是我認為只有在將多個表連接在一起時才使用數組語法: array('m.reciever,m.created','p.user,p.id') 。
希望對您有幫助。
$em = $this->getDoctrine()->getManager();
$q = $em->createQueryBuilder()
->select('m.reciever,m.created,m.id,m.subject')
->from('bundle:entity','m')
->where('m.reciever = ?1')
->orderBy('m.id','DESC')
->setMaxResults( '?2' )
->setFirstResult( '?3' )
->setParameter(1,$id)
->setParameter(2,$itemsPerPage)
->setParameter(3,$offset)
->getQuery();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.