symfony2数据转换器和断言

时间:2016-02-16 19:04:11

标签: php forms symfony

我有一个链接到用户实体的symfony2实体。用户只提交用户名,而不是用户ID。所以我创建了一个完美的数据变换器。

由于用户名只能包含8个字符,我想通过在字段中添加Assert\Length来创建自定义错误消息。但这不起作用,因为表单只接受用户对象,而不是字符串。

所以我尝试为用户字段创建Assert\Callback,但这对我也没有用,因为我无法在Callback / ExecutionContextInterface中访问提交的值测试提交的字符串(不是对象,因为错误的长度意味着无法找到用户!)

使用DataTransformer也没有用,因为抛出的TransformationFailedException不会被转换为用户的自定义错误消息 - 这就是我想要实现的目标!

有人知道怎么做吗?

非常感谢!

马丁

1 个答案:

答案 0 :(得分:1)

实现我想要做的唯一方法是使用Combine constraints and data transformers中回答的方法。希望能帮助别人!