2
我有3個實體:Make,Model和Auto。 Make - > Model是一對多關係,Auto-> Model是多對多關係。symfony2,表單構建器,如何初始顯示一個空實體選擇列表
我想要實現的是能夠生成一個表格,其中包括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')
);
}
}
實際上,我最終將一個參數'make'傳遞給AutoType並使用query_builder加載模型的子集。要實現空列表,最初我傳遞一個不存在的Make,因此模型列表最初顯示爲空。只有當選擇了製作時,模型列表纔會被填充。它有效,暫時我就這樣離開它。我會在稍後檢查你的建議,並感謝你在這個問題上的努力。 – Bekim