如何在我的表单中隐藏已删除 属性 的布尔类型
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
]);
我有一个 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
]);