Symfony2 形式的 prependClientTransformer 和 appendClientTransformer 有什么区别?什么时候应该使用 prependClientTransformer、appendClientTransformer。有什么例子吗?
问问题
789 次
2 回答
3
我对此的理解:
您应用 DataTransformer 的 FormType 具有在 getParent() 方法中定义的父类型。
prependClientTransformer将在从父类型应用的那些之前应用传递的 DataTransformer 。
appendClientTransformer将在从父类型应用的那些之后应用传递的 DataTransformer 。
于 2012-04-18T13:56:37.480 回答
0
正如您在源代码中看到的,这些方法用于控制clientTransformers
用于转换字段数据的调用顺序。它在您创建自定义字段类型时很有用。
例如,您想创建一个tag
字段类型,该类型将采用逗号分隔的值,这些值将在内部转换为标签数组。您将其父级设置为text
字段类型。您还为标签类型创建了一个转换器,它将数组转换为字符串,反之亦然。现在您的标签类型将有两个clientTranformer
,ValueToStringTransFormer和最后一个位置的转换器。因此,当您将数据绑定到表单或提交表单时,symfony 会将客户端数据转换为字符串,然后将转换后的字符串转换为数组(如此处所述)。对于相反的情况,它将数组转换为字符串,然后将字符串转换为客户端值(如此处定义)。虽然还没有找到用例prependClientTransformer
:)。
于 2012-04-18T20:36:23.083 回答