Make、Model、Autoの3つのエンティティがあります。Make-> ModelはoneToManyリレーションであり、Auto->ModelはmanyToOneリレーションです。
私が達成したいのは、メーカーのリスト(Ford、Opelなど)で構成されるフォームを生成し、最初にモデルの空のリストをロードできるようにすることです。モデルリストは、リストでMakeが選択されている場合にのみ入力する必要があります。これは、ajax呼び出しによって実現されます。
私の質問は、フォームビルダーが任意のMakeで割り当てられたすべてのモデルを入力しているため、モデルリストが最初は空であるために何をする必要があるかです。
query_builderを使用して同様のことを実現し、存在しないモデルを検索するとしますが、それは正しい方法ではありません。
class AutoType extends AbstractType {
public function buildForm(FormBuilder $builder, array $options) {
$builder->add('make','choice', array(
'choices'=>Array('1'=>'Opel', '2'=>'Ford'),
'property_path'=>false,
'label'=>'Make'))
->add('model', 'entity', array( // this fetches all models. Also don't want a subset of models, just empty list with 'Select Model'
'class' => 'Auto\SalonBundle\Entity\Model',
'empty_value' => 'Select Model'
))
->add('km')
->add('cc')
->add('hp')
->add('kw')
);
}
}