0
想象一下User
實體與Group
(多對多)的關聯。我需要顯示用戶詳細信息(以及 - 說 - 組名或組數)。在我的控制器(Symfony的2)我可以得到所有用戶:如何在使用Doctrine計數關聯實體時避免大量查詢?
$users = $this->em->getRepository('My\Entity\User')
->getAll();
// Assign $users to whatever the view engine
return $this->render('users.html.twig', array('users' => $users));
當然,在默認情況下是該協會懶惰,沒有JOIN執行與Group
操作。大多數情況下這是很好的。
但是當我嘗試在我的視圖中獲取組數時發生了什麼?
{% for user in users %}
{{ user.groups|length }}
{% endfor %}
結果是:對每個原始數據執行一次查詢。也就是說,查詢的數量等於用戶的數量。 1000位用戶(並且沒有分頁)會發生什麼?
如何獲取User
類的所有關聯實體(即只發出一個查詢)?
EXTRA-LAZY協會怎麼樣? – manix