Php 如何使用条令QueryBuilder或EntityManager通过多对多相关实体查找实体
我有两个实体:商店和用户。它们通过StoreUser联接表具有多对多关系。需要明确的是,除了关系数据之外,联接表中不存储任何内容 我已经创建了存储实体和用户实体,并在这些实体中设置了所有关系元数据 我现在正试图找出搜索分配给特定用户的所有门店的最简单方法。在我的存储库中,我有一个Php 如何使用条令QueryBuilder或EntityManager通过多对多相关实体查找实体,php,mysql,orm,doctrine-orm,doctrine,Php,Mysql,Orm,Doctrine Orm,Doctrine,我有两个实体:商店和用户。它们通过StoreUser联接表具有多对多关系。需要明确的是,除了关系数据之外,联接表中不存储任何内容 我已经创建了存储实体和用户实体,并在这些实体中设置了所有关系元数据 我现在正试图找出搜索分配给特定用户的所有门店的最简单方法。在我的存储库中,我有一个findAllByUser(User$User),我试图在其中构建一个查询,以根据传入的用户返回存储列表 编写以下类型查询的最简单方法是什么: 从存储中选择* 在store\u user上加入store\u userst
findAllByUser(User$User)
,我试图在其中构建一个查询,以根据传入的用户返回存储列表
编写以下类型查询的最简单方法是什么:
从存储中选择*
在store\u user
上加入store\u user
store\u id
=store
id
其中存储用户
用户id
=100001
我应该提到,如果可能的话,我尽量避免为StoreUser创建实体
提前谢谢 您可以使用DQL来完成:
$query = $this ->getEntityManager()
->createQueryBuilder()
->select('s')
->from('AcmeAcmeBundle:Store', 's')
->leftJoin('AcmeAcmeBundle:StoreUser', 'su', 'WITH', 'su.store_id = s.user_id')
->where('su.user_id = :id')
->setParameter('id', 100001)
->getQuery();
$result = $query->getResult();
如果我没有生成StoreUser实体,这会起作用吗?