mysql - 使用 findBy 访问实体内的 ArrayCollection

标签 mysql symfony doctrine-orm

我尝试使用 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/

相关文章:

MySql (Mariadb) 'Select not exists' 在 sql 文件中不起作用

mysql - 优化运行时间约为 30 秒的 MySQL 查询

java - 我想使用 mysql 查询或使用 xmlrpc api 从 WordPress 获取最新 3 篇帖子,其中包含标题、描述、特色图像、发布日期

database - Doctrine Query Builder 不适用于 UPDATE 和 INNER JOIN

php - Doctrine 试图分配 4GB?

mysql - SQL LEFT JOIN 到一个新行

forms - Symfony CollectionType 和类继承

php - 具有多个目标实体的多对一

php - Doctrine 使用连接表返回结果不工作 Symfony2

zend-framework - Zend Framework 2 Doctrine ORM 身份验证