我有一个Symfony 4实体,其中包括“已删除”的布尔属性。在我的存储库中,我只返回未标记为已删除的实体。当用户编辑实体并显示表单时,有一个我要隐藏的“已删除”复选框。
我尝试通过将字段类型更改为HiddenType来做到这一点:
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('name')
->add('logo')
->add('deleted', HiddenType::class)
->add('submit', SubmitType::class, [
'label' => 'Create',
'attr' => ['class' => 'btn btn-default pull-right'],
]);
}
但是当我提交表单时,出现以下错误: 预期的参数类型为“布尔值”,给定为“ NULL”。
关于如何以symfony方式正确隐藏此字段的任何想法?
答案 0 :(得分:0)
我不知道为什么要在表单中包含此隐藏字段,但是默认情况下,这些字段是必需的。
请参阅此处: https://symfony.com/doc/current/reference/forms/types/form.html#required
如果将required设置为false,则可以解决此问题。
如果没有要删除的值或将其设置为null,则可以将其默认设置为false,如下所示:
$builder->add('deleted', HiddenType::class, [
'empty_data' => false
]);