如何在我的表单中隐藏已删除属性的布尔类型

时间:2019-02-07 21:36:10

标签: symfony symfony-forms

我有一个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方式正确隐藏此字段的任何想法?

1 个答案:

答案 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
]);