在使用Doctrine2的Symfony2项目中如何获取某些参数排序的关系数据?例如:有两个相关的实体,文章和评论。 Doctrine生成了以下方法:
public function getComments()
{
return $this->comment;
}
当我运行此$article->getComments()
时,它会给出该文章的评论。现在我希望通过日期,受欢迎程度等来排序评论。换句话说,我想写一些方法,例如$article->getCommentsOrderedByDate()
,但我不知道该怎么做。
答案 0 :(得分:1)
答案 1 :(得分: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());
}
编辑:刚刚注意到使用&传递数组进行排序似乎已经折旧,所以我把它从我的帖子中删除了。没有它仍然可以正常工作。