OrderBy和Relation OneToMany

时间:2013-06-02 20:08:55

标签: symfony doctrine-orm sql-order-by dql

我有一点问题:

与OneToMany关联的Mod实体与View实体。

  • 国防部
    • 查看(观看一天)
    • 查看
    • 查看

我想获取mod并按视图数量对它们进行排序。 问题是,使用下面的代码,排序不正确,并且ORDER BY m.views不起作用。

public function getWeeklyModsMostViewed($number = null)
{
    $query = $this->_em->createQuery(

    "SELECT m
     FROM KynaModsBundle:Mods m
     LEFT JOIN m.views v
     WHERE v.date > :dateLimit
     ORDER BY v.views DESC
    "
    )->setParameter('dateLimit', new \dateTime('-7days'))
     ->setMaxResults($number);

    return $query->getResult();
你能帮帮我吗? 感谢。

1 个答案:

答案 0 :(得分:0)

您可以使用ORM注释(在实体中添加)来订购对象集合

  

@ORM \ OrderBy({“views”=“DESC”})

你做的请求如下:

  

SELECT m        来自KynaModsBundle:Mods m        LEFT JOIN m.views v        WHERE v.date> :dateLimit