2

Symfony2 形式的 prependClientTransformer 和 appendClientTransformer 有什么区别?什么时候应该使用 prependClientTransformer、appendClientTransformer。有什么例子吗?

4

2 回答 2

3

我对此的理解:

您应用 DataTransformer 的 FormType 具有在 getParent() 方法中定义的父类型。

prependClientTransformer将在从父类型应用的那些之前应用传递的 DataTransformer 。

appendClientTransformer将在从父类型应用的那些之后应用传递的 DataTransformer 。

于 2012-04-18T13:56:37.480 回答
0

正如您在源代码中看到的,这些方法用于控制clientTransformers用于转换字段数据的调用顺序。它在您创建自定义字段类型时很有用。

例如,您想创建一个tag字段类型,该类型将采用逗号分隔的值,这些值将在内部转换为标签数组。您将其父级设置为text字段类型。您还为标签类型创建了一个转换器,它将数组转换为字符串,反之亦然。现在您的标签类型将有两个clientTranformerValueToStringTransFormer和最后一个位置的转换器。因此,当您将数据绑定到表单或提交表单时,symfony 会将客户端数据转换为字符串,然后将转换后的字符串转换为数组(如此所述)。对于相反的情况,它将数组转换为字符串,然后将字符串转换为客户端值(如此定义)。虽然还没有找到用例prependClientTransformer:)。

于 2012-04-18T20:36:23.083 回答