编程语言
首页 > 编程语言> > php – Doctrine2获取QueryBuilder具有manyToMany关联的行

php – Doctrine2获取QueryBuilder具有manyToMany关联的行

作者:互联网

大家.
我有2个实体City和POI.映射看起来像这样:

class City {
/**
 * @ORM\ManyToMany(targetEntity="POI", mappedBy="cities")
 * @ORM\OrderBy({"position" = "ASC"})
 */
protected $pois;

class POI {
/**
 * @ORM\ManyToMany(targetEntity="City", inversedBy="pois")
 * @ORM\JoinTable(name="poi_cities")
 */
protected $cities;

我想使用QueryBuilder获取与某个城市至少有1个关联的所有POI.我应该使用exists()函数,但我不知道如何安静.

解决方法:

你必须加入他们并检查城市是否为空.

$qb->select('p', 'c')
   ->from('AcmeDemoBundle:POI', 'p')
   ->leftJoin('p.cities', 'c')
   ->where('c IS NOT NULL');

我没有对它进行过测试,但我希望它能为您提供总体方向.您可以从here了解有关QueryBuilder的更多信息.

标签:query-builder,php,symfony,doctrine
来源: https://codeday.me/bug/20190726/1541607.html