2016-06-24 5 views
1

私はContinentというエンティティを持っています。大陸には国があります:Doctrineクエリビルダが動作しません。

/** 
* @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 

をしかし、何らかの理由で、私はので、あなたが渡す必要がIN声明

+0

フィールドに 'values'ない値での' field' :-) – Rufinus

答えて

2

Uncaught exceptionを取得in関数の国IDの配列。それはまだないが、このヘルプ

+0

$qb->andWhere(':country IN (t.countries)') ->setParameter('country', // Extract id from a collections array_map('current', $country) ); 

希望:

$qb->andWhere('t.countries IN (:country)') ->setParameter('country', $country) 

の代わり:

ことは、これを試してみてください –

+0

こんにちは@IterAtor '$ country'を含むものは何ですか? '$ country'はIDの配列でなければなりません。 – Matteo

+0

それは国のインスタンスの配列です –

関連する問題