我正在创建一个应用程序,该应用程序具有一个与其他对象具有多个多对多关系的实体。让我布置实体:
- 入口=主要对象
- Region = 通过“_entry_region”引用表与条目具有多对多
- Type = 通过“_entry_type”引用表与条目具有多对多
- Tag = 通过“_entry_tag”引用表与条目具有多对多
现在在前端,用户可以为需要加载的条目设置一些过滤器。在人类语言中,查询需要是这样的。
Get the entries WHERE region is (1 or 2 or 3) AND type is ( 3 or 4 or 5 ) AND tag is ( 4 OR 6 or 1)
我目前正在努力使用这段代码:
$query = $this->em->createQuery('SELECT m.id FROM Entity\Entry e WHERE :region_id MEMBER OF e.regions);
$query->setParameter('region_id', 1);
$ids = $query->getResult();
这给了我相应区域的条目的 ID。但不可能在 setParameter() 中添加区域 ID 的数组。我也无法在文档中找到如何在多个相关实体上执行此操作,例如基于人类的查询:
Get the entries WHERE region is (1 or 2 or 3) AND type is ( 3 or 4 or 5 ) AND tag is (