我在Symfony 4.2.5中使用加载状态和城市(estados和municipios)时用相同的代码编写3种形式,但是只有这种形式使我发疯,因为具有相同的代码,但所有代码都无效,它总是在返回null “ municipio”,当我打印$ request时,它具有municipio = 1,但在$ form-> isValid()中说municipio为null,它是在我添加FormEvents时启动的。
如果有人能帮助我,我将不胜感激,我检查了我所有的代码,但这是中断的地方。
$builder->get('estado')->addEventListener(FormEvents::POST_SUBMIT, function (FormEvent $event) {
$estado = $event->getForm()->getData();
if (null == $estado) {
$event->getForm()->getParent()->add('municipio', EntityType::class, [
'class' => 'App\Entity\Municipio',
'required' => true,
'placeholder' => '== Selecciona un municipio 1==',
'choices' => []
]);
} else {
$event->getForm()->getParent()->add('municipio', EntityType::class, [
'class' => 'App\Entity\Municipio',
'required' => true,
'placeholder' => '== Selecciona un municipio 2 ==',
'choices' => $estado->getMunicipios()
]);
}
}
);
答案 0 :(得分:0)
我已经复制了我的字段,一个在添加时在buildForm中复制,另一个在事件中导致了不良行为。
Symfony不要说我们不能添加一个字段超过1次,并且在我需要提交表单并且我的字段未被识别并且始终为空值之前,不会显示任何错误。
我刚刚删除了$ builder-> add('municipio'),一切正常。