属性を持つCandidate
エンティティがあり$xmlContent
ます。この属性は、他のエンティティ (国、市民権など) への参照を取得するために使用されます。$xmlContent 値には、次のようにこれらのエンティティの ID が含まれています。
<data>
<countryId>2</countryId>
<citizenship>4</citizenship>
<!-- ... -->
</data>
注:モデルの設計がまずかったことは承知しています。変更できません。これは、作業を開始したときのプロジェクトの奇妙な制約の 1 つでした。
Id
そこで、 $xmlContent 値ごとにゲッターとセッターを作成しました。
問題、
Candidate オブジェクト ($xmlContent ID を含む) を編集するフォームを作成し、これらの値を取得するためのゲッターとセッターを追加しました (getCountry()、getCitizenship()、...)
Country
問題は、ユーザーが利用可能なすべての国のリストから (たとえば)の値を選択できるようにしたいことです。また、適切な国をデフォルトの国として設定する必要があります。
次に、エンティティ フィールドを使用することにしました。
->add('country', 'entity', array(
'class' => 'MyBundle:Country',
'query_builder' => function(CountryRepository $er) {
return $er->createQueryBuilder('c')
->orderBy('c.rank', 'ASC');
},
'property' => 'Name'
))
しかし、ここで別の問題がありました。候補の国を取得するために使用しているゲッターは「ID」を返しますが、エンティティ フィールドはオブジェクトを期待しています。
私の質問、
これを処理する最善の方法は何ですか?
私の制約、
コードをできるだけきれいに保ちたい:)