2012-03-23 84 views
0

在Symfony2項目中使用Doctrine2如何獲取由某些參數排序的關係數據?例如:有兩個相關的實體,文章和評論。學說產生以下方法:獲取關係數據訂購

public function getComments() 
{ 
    return $this->comment; 
} 

當我運行這個$article->getComments()它給這篇文章的評論。現在我想要評論的順序,比如說,日期,流行度等。換句話說,我想寫一些方法,如$article->getCommentsOrderedByDate(),但我不知道該怎麼做。

回答

1

PHP usort函數可用於自定義排序,超越了Doctrine的@elnur鏈接到的內置排序功能。

可以直接進入實體類的簡單示例。

public function getTeams() 
{ 
    $teams = $this->teams->toArray(); 

    usort($teams,array($this,'compareEventTeams')); 

    return $teams; 
} 
public function compareEventTeams($team1,$team2) 
{ 
    if ($team1->getType() == 'Home') return -1; 
    if ($team2->getType() == 'Home') return 1; 
    return strcmp($team1->getType(),$team2->getType()); 
} 

編輯:只注意到傳遞數組使用&出現貶值,所以我從我的文章把它丟進行排序。沒有它仍然可以正常工作。

+0

它給了我主意 – seferov 2012-03-23 13:03:09