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