对关系数据进行排序


Get relational data ordered

在Symfony2项目中使用Doctrine2如何获得按某些参数排序的关系数据?例如:有两个相关实体,文章和评论。条令产生了以下方法:

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

当我运行这个$article->getComments()时,它会给出对那篇文章的评论。现在我希望评论按日期、受欢迎程度等排序。换句话说,我想写一些方法,比如$article->getCommentsOrderedByDate(),但我不知道如何做到这一点。

PHP usort函数可用于自定义排序,超出了@elnur链接到的Doctrine内置排序功能。

可以直接进入实体类的简单示例。

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());
}

已编辑:刚刚注意到使用&似乎贬值了,所以我把它从我的岗位上删除了。没有它仍然可以正常工作。

查看多关联排序