Symfony 表单验证在编辑中不起作用
Symfony Form Validation not working in Edit
表单验证仅在 new
中有效,但在 edit
中无效,即使两者都使用相同的表单(下面的错误)。我使用的表单验证有误吗?
演示存储库: https://github.com/rwkt/demo-dynamicform
- 创建一个带有标题的新 post; 2. 编辑 post 删除标题并保存。
错误
属性 路径“title”处给出的预期参数类型为“string”、“null”。
您的 setter 需要字符串,而不是 ?string(字符串或空值)。因此需要将字符串传递给它(非空)。验证在填充对象后进行,因此它首先调用 setTitle,然后进行验证。但是因为你什么都没填,它调用 setTitle(null) 并且 php 在验证器验证数据之前抛出错误。
将您的 setter 重构为 setTitle(?string)
表单验证仅在 new
中有效,但在 edit
中无效,即使两者都使用相同的表单(下面的错误)。我使用的表单验证有误吗?
演示存储库: https://github.com/rwkt/demo-dynamicform
- 创建一个带有标题的新 post; 2. 编辑 post 删除标题并保存。
错误
属性 路径“title”处给出的预期参数类型为“string”、“null”。
您的 setter 需要字符串,而不是 ?string(字符串或空值)。因此需要将字符串传递给它(非空)。验证在填充对象后进行,因此它首先调用 setTitle,然后进行验证。但是因为你什么都没填,它调用 setTitle(null) 并且 php 在验证器验证数据之前抛出错误。
将您的 setter 重构为 setTitle(?string)