Symfony2表单中的prependClientTransformer和appendClientTransformer有什么区别?我什么时候应该使用prependClientTransformer,appendClientTransformer。有什么例子吗?
答案 0 :(得分:3)
我对此有所了解:
您正在应用DataTransformer的FormType具有在getParent()方法中定义的父类型。
prependClientTransformer 将应用已传输的DataTransformer BEFORE 从父类型应用的那些
。appendClientTransformer 将应用已传输的DataTransformer AFTER 从父类型应用的那些。
答案 1 :(得分:0)
正如您在source中看到的那样,这些方法用于控制clientTransformers
的调用序列,用于转换字段数据。在创建自定义字段类型时很有用。
例如,您想要创建一个tag
字段类型,该字段将采用逗号分隔值,这些值将在内部转换为标记数组。您将其父级设置为text
字段类型。您还为标记类型创建了一个转换器,它将数组转换为字符串,反之亦然。现在,您的代码类型将包含两个clientTranformer
,ValueToStringTransFormer以及最后位置的变换器。因此,当您将数据绑定到表单或提交表单时,symfony会将客户端数据转换为字符串,然后将转换后的字符串转换为数组(如here所述)。对于反向情况,它会将数组转换为字符串,然后将字符串转换为客户端值(如定义here)。但是没有找到prependClientTransformer
的用例:)。