該文檔說明了how to dynamically modify forms using form events,尤其是POST_SUBMIT事件。 $form->add('position', 'text', array('data' => 'It works'));
預填充動態表單字段
該字段添加,但爲空:
根據這個實例,在POST_SUBMIT事件監聽器,我不能像預填充數據添加一個字段。
任何想法我該怎麼做?
編輯
基本上表單類型應該是這樣的:
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder->add('colors', 'choice', array(
'choices' => array('blue', 'green', 'red'),
'multiple' => true,
'expanded' => true,
'mapped' => false,
));
$builder->get('colors')->addEventListener(FormEvents::POST_SUBMIT, function (FormEvent $event) {
// ... Some logic to determine data to pre populate $myValue
$myValue = 'It works';
$form = $event->getForm()->getParent();
$form->add('position', 'text', array(
'data' => $myValue
));
});
}
你可以添加更多的信息嗎?就像事件監聽器類或表單類型(如果第一個不存在)。 – cheesemacfly
我的猜測是表單正在嘗試使用提交的數據來填充字段,而沒有提交數據。 – Andrew