排序與 Doctrine 的最大關系?
關系
#[ORM\ManyToOne(inversedBy: 'users')]
#[ORM\JoinColumn(nullable: false)]
private ?University $university = null;
我的存盤庫代碼(排序不正確)
public function sortPopularChats(): array
{
return $this->createQueryBuilder('u')
->orderBy('u.university', 'DESC')
->groupBy('u.university')
->setMaxResults(5)
->getQuery()
->getResult()
;
}
我的用戶表
|id|university_id|
|1|100610385|...
|2|106952005|...
|5|100610385|...
|11|108410557|...
|6|100610385|...
|7|106952005|...
|4|100610385|...
|9|106952005|...
|10|100610385|...
排序應該是這樣的
- 100610385
- 106952005
- 108410557
- ...
- ...
uj5u.com熱心網友回復:
您需要一個count運算式才能將其用作排序欄位,但這樣做會回傳 a ScalarResult,同時包含計數和物件。為了防止這種情況,您可以使用HIDDEN關鍵字(向下滾動或搜索),以便只University回傳物體:
public function sortPopularChats(): array
{
return $this->createQueryBuilder('e')
->leftJoin('e.university', 'u')
->addSelect('u, count(u) AS HIDDEN uniCount')
->orderBy('uniCount', 'ASC')
->groupBy('u.id')
->setMaxResults(5)
->getQuery()
->getResult()
;
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/521206.html
