我-粗略地-有这样的层次结构:
class City {
/**
* @ORM\OneToMany(targetEntity="AppBundle\Entity\District", mappedBy="city")
*/
private $districts;
}
class District {
/**
* @ORM\Column(type="boolean")
*/
private $isRemoved;
}我正在尝试查询城市,但我不想在查询中查看删除的地区。我目前的解决方案包括循环遍历地区,检查删除的属性,并从返回对象中删除地区。
我的另一个选择是使用查询构建器从头开始编写详细的查询,但在这种情况下,-though可能会工作-随着层次结构的加深,会变得越来越复杂。
发布于 2017-03-16 22:39:31
对我来说似乎很简单,也许我不太理解,但让我们试一试
$cities = $em->getRepository('AppBundle:City')->createQueryBuilder('c')
->select('c', 'd')
->leftJoin('c.districts', 'd')
->where('d.isRemoved = 0')
->getQuery()->getResult();这将为您提供具有关联地区集合的城市,其isRemoved为false。
希望这能对你有所帮助。
https://stackoverflow.com/questions/42836026
复制相似问题