Product
現在、Zend Framework 2 と Doctrine 2 を使用して、非常に柔軟でモジュール化されたアプリケーションを開発しています。このアプリケーションには、複数の Doctrine エンティティがあります。たとえば、モジュール内のエンティティとしましょうProducts
。このモジュールProducts
は、製品管理のベース/デフォルト モジュールです。
Products
顧客 ( ) 用のカスタム モジュールを作成できるようにしたいと考えていますXProducts
。したがって、拡張する新しいエンティティXProduct
(いくつかの追加フィールドを含む) を作成しましたProduct
。
したがって、カスタム モジュールが有効になっている場合は、XProduct
and elseを使用したいのですProduct
が、(同じプロジェクト内で) 一緒に使用することはありません。
@Entity で両方のエンティティに注釈を付けると、部分的に機能します。たとえばfindAll
、完全にfind
機能しますが、機能しません。作成された SELECT ステートメントには正しい列が含まれていますが、WHERE 句が間違っています。例えば:
SELECT t1.id AS id2, t1.name AS name3 FROM products t1 WHERE t0.id = ?
は forとfor をt1
表していると思いますが、列が正しい ( ) のに where 句が正しくない ( ) 理由がわかりません。ProductX
t0
Product
t1
t0
Doctrine が継承を実現するために単一テーブル継承を提供していることは承知していますが、したがって、DiscriminatorColumn が必要であり、ベース/デフォルト エンティティで DiscriminatorMap を定義する必要があります。顧客用の新しいカスタム モジュールを追加する場合、ベース/デフォルト モジュールを変更する必要があるため、これは私たちには適していません (それは私たちが望んでいるものではありません...)。
誰もこの問題を解決する手がかりを持っていますか? ありがとう!