誰知道如何解決這個簡單的問題? 我有實體項目與領域喜歡用戶和樹枝計數這個領域,但我想這個計數(DESC)訂單項目 - 首先誰擁有更多的用戶喜歡。怎麼做?在查詢生成器或在樹枝創建過濾器?幫助教條我知道計數Symfony按字段排序實體OneToMany
"likes_user" => count($this->getLikedUsers()->getValues())
如何排序我的這個領域的所有項目?
或如何用查詢生成器解決它? 類似的東西,但是這是不行的:
public function getProjects()
{
$qb = $this->getEntityManager()->createQueryBuilder('d');
$qb
->select('d')
->from('AppBundle:Project', 'd')
->where('d.confirm = :identifier')
->setParameter('identifier', 'approved')
->orderBy('COUNT(d.likedUsers)', 'DESC')
->getQuery()
->getResult()
;
$query = $qb->getQuery();
$results = $query->getResult();
return $results;
}
實體:
/**
* Project
*
* @ORM\Table()
* @ORM\Entity(repositoryClass="AppBundle\Entity\ProjectRepository")
*/
class Project implements \JsonSerializable
{
/**
* @var Collection
*
* @ORM\OneToMany(targetEntity="AppBundle\Entity\User", mappedBy="likedProjects")
*/
private $likedUsers;
{% for project in projects %}
<div>LIked: <span>{{ project.likedUsers|length|number_format(0, '.', ' ') }}</span></div>
{% endfor %}
我想,也許這樣的:
{% for project in projects.likedUsers|length|sort %}
但不影響
也許誰知道?數組項目如何按字段LikedUser的數量進行排序。我不知道這是怎麼回事。查詢生成器或樹枝擴展或usort ..
更新我的問題。我不明白$ p1,$ p2和size()是什麼?也許計數($ project-> getLikedUser() - > getValues())或我不明白 –
如果我得到這個權利,你有一個*項目列表*,你需要通過計數「喜歡用戶」。那是對的嗎? –
是的這是正確的 –