私はDDDアプローチの小さなプロジェクトを開始しています。私は、プレーンなPHPでエンティティとバリューオブジェクトを使ってドメインモデルを作成しました。エンティティには関連付けの参照があります。私のケースでは、彼が所属するTeams
のコレクションを持つEmployee
エンティティがあり、それらをEmployee::teams
のプロパティに保持します。すべてが素晴らしい起こっている、私はDoctrine2リポジトリから配列として関連付けられたエンティティコレクションを取得します。
私はリポジトリから(DoctrineのEntityManager::findAll()
で)Employee
Sをフェッチ代わりなどのリポジトリがSymfony2のとDoctrine2層に実装されるためにYAMLで団体、インタフェース、とそれらのエンティティのマッピングを作成しましたTeam
の配列の私はそれらのチームとPersistentCollection
を受け取る。これはPHP7で構築されており、Employee::getTeams()
の戻り値の型はarray
です。したがって、私は重大な例外を受けています。 いくつかの外部リスナー(ドメインファイルで混乱しないようにSymfonyレイヤーのみ)やその他のコアメカニズムを使って配列に変換する方法はありますか?
ありがとうございました。
例外メッセージは何ですか。 –
@Alok例外は、PHPの 'TypeError'です:** Employee :: getTeams()の戻り値は、配列型でなければならず、**返されたオブジェクトでなければなりません。私は 'PersistentCollection :: toArray()'を呼び出すことができますが、可能であれば、私はDoctrine ORM( 'PersistentCollection'を含む)を使用することを提案しているので、そのような型を私のドメインに残さないことを望みます。 –
自動生成エンティティ?すべてのonToManyアソシエーションに '\ Doctrine \ Common \ Collections \ Collection'の戻り値の型があるためです。 –