2013-07-19 19 views
1

我真的處於一個我不想要的地步。我只是想用教義來訂購類別。利特爾學說文檔閱讀我後採用以下在我的控制器:Zendframework2使用教義orderBy根本不是「排序」

$categories = $em->getRepository('\Cbox\Entity\Category')->findBy(array('title' =>'news'), array('createdTime' => 'DESC')); 

兩個柱的存在,也沒有我能得到一個PHP /教義/ MySQL錯誤。這是正確的方法嗎?我使用的OrderBy註解在我的實體,但沒有成功也試過兩種:

/** 
* @ORM\OneToMany(targetEntity="Cbox\Entity\Category", mappedBy="box") 
* @ORM\OrderBy({"createdTime" = "DESC"}) 
*/ 
protected $category; 

我也讀過有關的QueryBuilder和DQL但是這只是似乎是一個矯枉過正的痘痘位,以獲得排序依據設置。

任何幫助將不勝感激。我也希望有足夠的代碼讓你們獲得照片。但我寧願在這裏顯示「有問題」的部分,然後是大量的代碼。

+0

的findBy函數的第二個參數是排序,所以這是正確的。我想知道,你回來了什麼?沒有或沒有正確排序的列表?什麼類型/格式是「createdTime」? – isset

回答

1

試試這個

$qb = $em->createQueryBuilder(); 
$qb->select('u') 
->from('Cbox\Entity\Category u') 
->where('u.title = :title') 
->orderBy('u.createdTime', 'DESC') 
->setParameter('title', news); 

現在,如果的CBox \實體\目錄\ CBOX \實體\目錄是正確的實體此必須工作。 這裏是另一種方法,你可以做同樣的事情沒有setParameter()但我不會推薦它。

$qb->select('u') 
->from('Cbox\Entity\Category u') 
->where('u.title = news') 
->orderBy('u.createdTime', 'DESC'); 

進一步,如果你想了解如何獲取引起了$ QB的,我建議你遵循這個鏈接http://docs.doctrine-project.org/en/latest/reference/query-builder.html

+0

thx爲答案。 – cptnk