在我的Symfony 2应用程序中,我需要在将输入传递给验证[1]之前对其进行过滤,但是,我似乎无法在Symfony中找到任何系统来执行此操作。
我寻找的过滤类型是例如能够在验证之前过滤特定字段中的短划线。例如。用户可以输入123-123
,但唯一可接受的值是123123
。就像我可以使用约束设置验证规则一样,我正在为过滤器寻找类似的东西。
答案 0 :(得分:2)
Nifr's答案很好,但缺少一个重要的替代方案,如果我理解正确你的问题,似乎完全符合你的需求。
您可以使用几乎是事件监听器的 hook :如果发生或将要发生的事情,它会拦截事件并将其重定向到您的函数。
在这种情况下,你需要一个 PRE_BIND 钩子(自2.3版以来不推荐使用,现在称为 PRE_SUBMIT )
如果您需要有关
的帮助,请阅读this答案 1 :(得分:0)
编写own Validation Assert进行过滤,然后为此目的代理其他验证器......
...或一个或多个Regex Asserts。
...或使用DataTransformer转换/过滤输入。
在涉及DataTransformer的情况下,您还可以考虑创建一个新的FieldType,它使用像 date 表单字段这样的分隔符来呈现两个输入。 (如果不与widget => single_text
一起使用)