【发布时间】:2015-07-14 07:22:30
【问题描述】:
我有一个 ManyToMany 关联字段,而我现在只是想获取所有 ID,而不是对该字段中的任何子实体进行水合。
我知道在我访问该字段的那一刻会有一个查询来获取实体引用,这很好/预期。但是我需要遍历ID,但我不太知道如何在不做的情况下获取它们
$ids = [];
foreach($mainEntity->getSubEntities() as $subentity) {
$ids[] = $subentity->getId();
}
这似乎也自动为子实体水合,我假设是因为foreach 循环。这会导致大量不必要的查询并影响页面加载时间。
我的子实体字段也标有EXTRALAZY。
/**
* @var ArrayCollection
* @ORM\ManyToMany(targetEntity="User", fetch="EXTRA_LAZY")
* @ORM\JoinTable(name="user_friends")
*/
protected $friends;
【问题讨论】:
标签: php mysql symfony doctrine-orm