Symfony 表单验证在编辑中不起作用

Symfony Form Validation not working in Edit

表单验证仅在 new 中有效,但在 edit 中无效,即使两者都使用相同的表单(下面的错误)。我使用的表单验证有误吗?

演示存储库: https://github.com/rwkt/demo-dynamicform

  1. 创建一个带有标题的新 post; 2. 编辑 post 删除标题并保存。

错误

属性 路径“title”处给出的预期参数类型为“string”、“null”。

您的 setter 需要字符串,而不是 ?string(字符串或空值)。因此需要将字符串传递给它(非空)。验证在填充对象后进行,因此它首先调用 setTitle,然后进行验证。但是因为你什么都没填,它调用 setTitle(null) 并且 php 在验证器验证数据之前抛出错误。

将您的 setter 重构为 setTitle(?string)