Php 如何使用DataTransformer访问Symfony Validator中的POST数据?

Php 如何使用DataTransformer访问Symfony Validator中的POST数据?,php,validation,symfony,http-post,Php,Validation,Symfony,Http Post,在这种情况下,我很难理解如何使用Symfony表单验证: 我正在开发一个保存化合物的表单,使用化学公式作为字符串输入。该输入(如“H2O”)被数据转换为化学元素的集合(“H”、“H”、“O”),该集合与新生成的字符串表示(“H2O”)一起保存为公式。这确保了配方的有效性,例如“OH2”无法保存,因为自动生成配方时会考虑这些问题,并将其更改为“H2O”。我不想公开访问component->setFormula(),因为这会导致与包含的元素不一致 现在,我想确保一个输入,如“H2Oxxxx”没有被保

在这种情况下,我很难理解如何使用Symfony表单验证:

我正在开发一个保存化合物的表单,使用化学公式作为字符串输入。该输入(如“H2O”)被数据转换为化学元素的集合(“H”、“H”、“O”),该集合与新生成的字符串表示(“H2O”)一起保存为公式。这确保了配方的有效性,例如“OH2”无法保存,因为自动生成配方时会考虑这些问题,并将其更改为“H2O”。我不想公开访问component->setFormula(),因为这会导致与包含的元素不一致

现在,我想确保一个输入,如“H2Oxxxx”没有被保存为“H2O”,而没有注意到输入实际上与找到的公式不同,而“OH2”应该被接受并保存为“H2O”。我尝试使用约束“isValidCompound”和验证器“isValidCompoundValidator”来实现这一点。现在(很简单?)的问题是:如何从isValidCompoundValidator访问POST数据,以便将自动创建的公式与其进行比较?通常,您可以使用$component->getFormula()访问它,因为它会自动填充表单数据。在我的例子中,由于上面给出的原因,它只能通过使用找到的元素来填充

这个设置有意义吗?我应该直接使用$request->request->all()访问POST数据吗;?或者是一个不同的课程设置更可取

非常感谢