2013-06-02 1 views
0

У меня есть небольшая проблема:OrderBy and Relation OneToMany

Модифицированная сущность в отношении OneToMany с представлением сущности.

  • Mod
    • View (вид на один день)
    • Посмотреть
    • Посмотреть

Я хотел бы получить моды и сортировать их по количеству просмотров. Проблема в том, что с приведенным ниже кодом сортировка некорректна и 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(); 

Помогите мне пожалуйста? Спасибо.

+0

, вероятно, вам нужно добавить 'v' в предложение select. – AdrienBrault

ответ

0

Вы можете заказать коллекцию объекта с ORM аннотации (которые вы добавляете в вашей организации)

@ORM \ OrderBy ({ "вид" = "DESC"})

И вы делаете ваш запрос как:

ВЫБОР м ОТ KynaModsBundle: Модификации м LEFT JOIN m.views v ГДЕ v.date>: dateLimit