Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.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 Symfony-用于加载关联映射实体的条令自定义查询_Php_Doctrine Orm_Symfony - Fatal编程技术网

Php Symfony-用于加载关联映射实体的条令自定义查询

Php Symfony-用于加载关联映射实体的条令自定义查询,php,doctrine-orm,symfony,Php,Doctrine Orm,Symfony,我如何定制映射负载的查询 假设 数据库中的两个表,即用户表和项目表 项表中有一个名为is_deleted boolean的属性,当该值设置为true时,表示该属性已被删除。 使用Symfony3进行项目设置 情景 例如,我有两个实体类,分别是用户和项目。这两个实体之间的关系是一对多的,每个用户可以有多个项目 当我尝试获取一个用户时,相关的项目也将被加载到该用户的lazy、eager和extra-lazy中 我试图实现的是定制关联映射加载,其中仅加载具有等于false的元素。我该怎么做 非常感谢你

我如何定制映射负载的查询

假设

数据库中的两个表,即用户表和项目表 项表中有一个名为is_deleted boolean的属性,当该值设置为true时,表示该属性已被删除。 使用Symfony3进行项目设置 情景

例如,我有两个实体类,分别是用户和项目。这两个实体之间的关系是一对多的,每个用户可以有多个项目

当我尝试获取一个用户时,相关的项目也将被加载到该用户的lazy、eager和extra-lazy中

我试图实现的是定制关联映射加载,其中仅加载具有等于false的元素。我该怎么做

非常感谢你的帮助

$em->createQueryBuilder()
   ->select('Item')
   ->from('XYZBUNDLE:Item', 'Item')
   ->leftJoin('XYZBUNDLE:User', 'User')
   ->where('Item.is_deleted', ':is_deleted')
   ->andWhere('User.id', ':userId')
   ->setParameter('is_deleted', false)
   ->setParameter('userId', 1)
->getQuery()->getResult();

如果您想获取所有用户的所有结果,您可以在这里删除用户的where条件。

您可以使用条令过滤系统


我没有试过。

嗨,谢谢你的帮助。我知道这个查询可以帮助删除值等于true的项。但是,它在关联加载上可行吗?这意味着,当我加载我的用户时,自动加载的项将被删除,等于false。它也将与非关联项一起工作。您可以使用它,如->from'XYZBUNDLE:item'、'item'->leftJoin'XYZBUNDLE:user'、'user'、'item.user\u id=user.id'