具有多个ID的findBy

Pre*_*iel 1 symfony doctrine-orm symfony-3.4

为了从ManyToOne - OneToMany关系的反面编辑数据,并避免获取整个表的内容,我想从ID列表中获取数据。

虽然这行得通,

$data=array();
foreach($idList as $id) {
    array_push($data, $em->getRepository(Entity::class)->findBy(array('id', $id)));
}
Run Code Online (Sandbox Code Playgroud)

它将执行与ID一样多的查询。在存储库中进行自己的查询之前,我想知道是否可以将多个ID与一起使用findBy

如果有可能,我该怎么办?

Noé*_*aün 6

你可以做

$em->getRepository(Entity::class)->findBy(array('id' => $idList));
Run Code Online (Sandbox Code Playgroud)

  • 直到最近。 (2认同)
  • @Preciel文档很糟糕,但是这里至少有模糊的记录:https://www.doctrine-project.org/projects/doctrine-orm/en/2.14/reference/working-with-objects.html#by-simple -conditions `如果你传递一个值数组,Doctrine 会自动将查询转换为 WHERE 字段 IN (..) 查询:` (2认同)