オブジェクトにこのプロパティが設定されている場合、子プロパティでDoctrineクエリをフィルタリングしようとしています。 基本的に、Class table inheritance, as described in the documentationには、抽象クラスAccommodation
と、House
と、Tent
という子があります。 House
クラスはowner
プロパティを持ち、Tent
プロパティはありません。 これは私がqueryBuilderを作る方法です。クラステーブル継承の子プロパティのDoctrine2フィルタクエリ
$qb = $this->createQueryBuilder('a')
->select('a')
->andWhere('(a NOT INSTANCE OF "House") OR (a INSTANCE OF "House" AND a.owner = :owner)')
->setParameter("owner", $user);
私はowner
がAccommodation
のために存在しないというエラーを取得することを行う:
[Semantical Error] line 0, col 299 near 'owner =:owner)': Error: Class AppBundle\Entity\Accommodation has no field or association named owner
はowner
列に参加する教義を依頼する方法はありますか?
PS:これはSymfony3プロジェクトの一部ですが、私はその問題については重要ではないと思います。