イベントにレース結果を追加するためのフォームを作成しようとしていますが、1 つの選択ボックスのオプションで結合されたテーブルからの情報を表示する方法がわかりません。
これが私のデータベース構造です:
人物表:
id | name
----------
1 | fred
2 | dave
3 | james
参加者テーブル (コードは参加者のレース番号で、シャツにピンで留めるものです):
id | code | person_id | category_id
---------------------------------
1 | 210 | 1 | 1
2 | 211 | 2 | 1
3 | 212 | 3 | 1
4 | 156 | 1 | 2
6 | 157 | 3 | 2
結果表:
id | time | entrant_id
---------------------
1 | 1:20 | 1
2 | 1:35 | 2
3 | 2:02 | 3
結果を Category=1 に追加する場合の望ましい出力:
<select>
<option>210 - Fred</option>
<option>211 - Dave</option>
<option>212 - James</option>
</select>
私が現在 ResultType で取得しているコードは、entrant.code ではなく、(名前ごとに 1 つの余分なクエリを犠牲にして) 良いスタートである person.name だけを取得します。
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('time')
->add('entrant', 'entity', array(
'class'=>'KP\EventsBundle\Entity\Entrant',
'property' => 'person.name',
));
}
同じオプションのリストで entrant.code と person.name の両方を取得するにはどうすればよいですか?
Symfony を使い始めてまだ数週間なので、どうかお手柔らかにお願いします。