Sonata类型集合删除行触发约束验证

时间:2017-02-27 03:19:40

标签: php symfony sonata-admin symfony-sonata sonata

我对奏鸣曲管理员有问题,特别是在类型集合字段中。这是场景:

我有一个名为“Group”的实体,与实体“Member”有一对多的关系

在sonata admin中,我为2个实体设置了管理类。

在“组管理员”中,我以这种方式创建一个带有成员实体的集合类型

->add('members', 'sonata_type_collection', [
    'by_reference'          => false,
    'label'                 => 'Members',
    'type_options'          => ['delete' => true],
    'btn_add'               => "Add Member",
    'required'              => false,
    'constraints'           => $validation['members'],
],
[
    'edit'              => 'inline',
    'inline'            => 'table'
])

成员实体有4个字段,其中一个是必填字段。

->add('firstName', TextType::class, [
    'label'         => 'First Name'
    'constraints'   => [
        new NotBlank(['message' => 'Please enter the name.']),
    ]
])

如果单击编辑视图中的“添加成员”按钮,它会按预期添加新行。 此时,如果我改变主意并决定删除新添加的记录而不添加名称,则在保存时会返回验证错误,告诉我“请输入名称”。在球场上。

删除操作不应优先于验证吗?

1 个答案:

答案 0 :(得分:0)

我提出了解决此问题的拉取请求,它已合并到3.x。

现在,当您点击删除复选框时,相关字段已停用,因此您在提交表单时不会遇到任何问题。

https://github.com/sonata-project/SonataAdminBundle/pull/4358