我有一个名为Continent
的实体。一个大陆有国家:
/**
* @ManyToMany(targetEntity="Country")
* @JoinTable(name="cont_countries",
* joinColumns={@JoinColumn(name="cont_id", referencedColumnName="id")},
* inverseJoinColumns={@JoinColumn(name="country_id", referencedColumnName="id", unique=true)}
* )
* @var Country[]
**/
private $countries;
我想找到哪个大陆属于一个国家。 (例如,俄罗斯属于欧洲,也属于亚洲)
我试过这个:
$qb->andWhere(':country IN (t.countries)')
->setParameter('country', $country)
// possibly more conditions after that
但出于某种原因,由于Uncaught exception
声明
IN
答案 0 :(得分:2)
您需要将国家/地区ID数组传递给函数。
试试这个:
$qb->andWhere('t.countries IN (:country)')
->setParameter('country', $country)
而不是:
$qb->andWhere(':country IN (t.countries)')
->setParameter('country',
// Extract id from a collections
array_map('current', $country)
);
希望这个帮助