我正在尝试使用findOneBy从数据库中获取一个对象,但是区分各个对象的对象的标识符位于此类的ArrayCollection成员内部。 (不计算ID)

该关系是OneToMany单向关系,这使它与JoinTable成为ManyToMany,现在我知道如何找到具有“单个变量”成员的对象,如下所示:

$em->getRepository('ExampleEntity')->findOneBy(array('name' => 'example');


有谁知道如何使用相同的方法(使用find *或DQL)访问ArrayCollection变量成员? CustomRepository?

谢谢。

附言我很抱歉,如果已经存在这样的问题,我已经进行了搜索。

编辑:

我可能还应该说,ArrayCollection本身就是一个Entity,它包含两个字段,即name和data(我知道,很模糊,这是因为Entity本身很模糊)

最佳答案

据我了解,您想按字段查找实体中的arrayCollection字段。以下查询应该工作:

$queryBuilder = $em->getRepository('ExampleEntity')->createQueryBuilder('alias');

return $queryBuilder
   ->where($queryBuilder->expr()->in('alias.arrayField', 'value'))
   ->getQuery()
   ->getResult();

关于mysql - 使用findBy访问实体内部的ArrayCollection,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28078504/

10-14 11:54