私は、私のentitesに単純なテーブルの継承を持っているようsomehingを言う:私はすべての記事タイプ間でクエリを実行する必要がありドクトリン2 - 単一テーブル継承 - 子エンティティのアクセスプロパティ
/**
* @InheritanceType("SINGLE_TABLE")
* @DiscriminatorColumn(name="type", type="string")
* @DiscriminatorMap({"base"="BaseArticle", "extended"="ExtendedArticle"})
*/
class BaseArticle extends \Models\BaseModel{
...
}
class ExtendedArticle extends BaseArticle{
/**
* @column(type="string")
*/
protected $extendedProperty;
}
が、いくつかの種類ですなわち、それは、拡張ExtendedArticleであり、いくつかのプロパティでクエリを制限:
SELECT a FROM BaseArticle a WHERE (a INSTANCE OF BaseAricle) OR (a INSTANCE OF ExtendedArticle AND a.extendedProperty = "xy")
WICHは、例外をfolowing私を与える:
[Semantical Error] line 0, col 406 near 'extendedProperty="xy"))': Error: Class Models\Articles\BaseArticle has no field or association named location
質問は、親クラスへのクエリで子のプロパティにアクセスする方法ですか?
本当にありがたいですが、単純なことのためにこのような非効率的なサブクエリを行うという考えは本当に好きではありません。 SQLでは、これは本当に簡単な作業ですが、教義にはこれに対するネイティブなサポートが必要だと私には思われます。 – DaveLister