我尝试使用 findOneBy 从数据库中获取对象,但区分各个对象的对象标识符位于此类的 ArrayCollection 成员内部。 (不包括id)
关系是 OneToMany 单向,这使得它与 JoinTable 成为 ManyToMany,现在我知道如何查找具有“单变量”成员的对象,如下所示:
$em->getRepository('ExampleEntity')->findOneBy(array('name' => 'example');
有谁知道如何使用相同的方法访问 ArrayCollection 变量成员,即使用 find* 或 DQL ?自定义存储库?
谢谢。
附注非常抱歉,如果已经存在这样的问题,我已经搜索过了。
编辑:
我可能还应该说,ArrayCollection 本身就是一个实体,它包含两个字段,名称和数据(我知道,模糊,那是因为实体本身是模糊的)
最佳答案
如果我理解,你想通过字段查找实体中的 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/