我有以下表單,它包含數據庫中的數據,它仍然是WIP(我缺少一些我沒有添加的字段)。 表單在第一個選擇中加載數據,並基於該選擇,我使用ajax根據第一個選擇(基本上與選定值的關聯)填充第二個選擇。並從那裏再次選擇某些選項等等,並在最後提交表單時,我想根據數據從數據庫生成報告。 目前我很堅持的第二場,因爲我總是得到一個錯誤:symfony ajax表單動態修改
This value is not valid.
窗體類:
/**
* @param FormBuilderInterface $builder
* @param array $options
*/
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('survey', EntityType::class, [
'class' => SurveyManager::class,
'placeholder' => 'Choose option',
'attr' => [
'class' => 'field-change',
],
])
->add('headquarter', ChoiceType::class, [
'choices' => [],
])
->add('submit', SubmitType::class, [
'label' => 'Save',
])
;
}
我不雷爾知道如何修復錯誤或如何我應該如何處理這種類型的表單。你能幫我出去嗎?
基於答案我這樣做
$builder->addEventListener(
FormEvents::PRE_SUBMIT,
function (FormEvent $event) {
$form = $event->getForm();
$data = $event->getData();
$form->add('headquarter', EntityType::class, [
'class' => HeadQuarterManager::class,
'query_builder' => function(HeadQuarterManagerRepository $er) {
return $er->getHeadquarter($data['survey']);
},
]);
}
);
但我發現了這個錯誤:
Notice: Undefined variable: data
不能確定如何將數據傳遞到getHeadquarter方法,所以我可以返回選擇的ID =>名稱數組。
我想你會說... :-D問題是我從來沒有使用過,我沒太明白該文檔:( –
@LS從它你需要的聲音選項3 http://symfony.com/doc/current/form/dynamic_form_modification.html#form-events-submitted-data當你完成它,一旦你得到用於它 – Rooneyl
好吧,讓我看看那個部分放一些代碼,我們會從那裏看到我做了什麼愚蠢的事情:D –