3

みんな。私は 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() 関数を使用する必要がありますが、その方法がわかりません。

4

2 に答える 2

7

それらにアクセスして、がnullLeft joinかどうかを確認する必要があります。cities

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

私はそれをテストしていませんが、一般的な方向性を示してくれることを願っています. の詳細についてはQueryBuilderこちらをご覧ください。

于 2011-09-26T10:08:06.867 に答える