Řazení podle počtu záznamů propojené tabulky

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
medhi
Generous Backer | 255
+
0
-

Ahoj,

mám tabulky Article a Users propojenou M:N vlastností article_like. Tedy kdo likoval článek. Dále existuje tabulka Tag, opět M:N propojená s články.

V následující šabloně mám k dispozici tag. Podle něho vypisuji seznam článků. To funguje dobře tak jak je tam uvedeno. Ale já bych ještě navíc chtěl tento seznam článků řadit podle počtu liků.

https://github.com/…efault.latte#L24

Poradíte, jak na to, případně, zda je to možné? Nejblíže jsem se asi dostal pomocí ->order('COUNT(article(article_like):users.id)'), ale chyba No reference found for $article->related(users). říká, že to asi není správně.

Anglicky zde: https://forum.nette.org/…nected-table#…

Editoval medhi (26. 1. 2015 17:50)

David Matějka
Moderator | 6445
+
0
-

imho by mohlo jit neco jako

$articles->order('COUNT(:article_like.id) DESC')->group('article.id')
medhi
Generous Backer | 255
+
0
-

Bohužel nejde No reference found for $article_tag->related(article_like)

medhi
Generous Backer | 255
+
0
-

Tak vyřešeno, má to vypadat takto:

->order('COUNT(article:article_like.user_id) DESC')