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

How to hide a boolean type for the deleted property in my form

我有一个 Symfony 4 实体,其中包含 "deleted" 的布尔值 属性。在我的存储库中,我只返回未标记为已删除的实体。当用户编辑实体并显示表单时,我想隐藏 "deleted" 的复选框。

我尝试将字段类型更改为 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'],
        ]);

}

但是当我提交表单时,我得到这个错误: 给定 "boolean"、"NULL" 类型的预期参数。

关于如何以 symfony 方式正确隐藏此字段的任何想法?

我不知道你为什么要在表单中包含这个隐藏字段,但默认情况下,这些字段是必需的。

看这里: https://symfony.com/doc/current/reference/forms/types/form.html#required

如果将 required 设置为 false,这可能会解决问题。

如果 deleted 没有值或设置为 null,您可以像这样将其默认设置为 false :

$builder->add('deleted', HiddenType::class, [
    'empty_data' => false
]);