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