获取订购的关系数据

时间:2012-03-23 08:48:14

标签: php oop doctrine symfony doctrine-orm

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

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

当我运行此$article->getComments()时,它会给出该文章的评论。现在我希望通过日期,受欢迎程度等来排序评论。换句话说,我想写一些方法,例如$article->getCommentsOrderedByDate(),但我不知道该怎么做。

2 个答案:

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

编辑:刚刚注意到使用&传递数组进行排序似乎已经折旧,所以我把它从我的帖子中删除了。没有它仍然可以正常工作。