Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/259.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何使用条令QueryBuilder或EntityManager通过多对多相关实体查找实体_Php_Mysql_Orm_Doctrine Orm_Doctrine - Fatal编程技术网

Php 如何使用条令QueryBuilder或EntityManager通过多对多相关实体查找实体

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

我有两个实体:商店和用户。它们通过StoreUser联接表具有多对多关系。需要明确的是,除了关系数据之外,联接表中不存储任何内容

我已经创建了存储实体和用户实体,并在这些实体中设置了所有关系元数据

我现在正试图找出搜索分配给特定用户的所有门店的最简单方法。在我的存储库中,我有一个
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实体,这会起作用吗?