我正在使用Symfony 2.6,并且按照这些教程我如何使用验证回调约束:
http://symfony.com/blog/new-in-symfony-2-4-a-better-callback-constraint
http://symfony.com/doc/current/reference/constraints/Callback.html#external-callbacks-and-closures
要调用外部验证调用,我尝试使用以下yaml配置:
App\APIBundle\Entity\Order:
properties:
id:
- Type:
type: integer
message: "Der Wert {{ value }} ist kein gültiger {{ type }}."
amount:
- Type:
type: integer
message: "Der Wert {{ value }} ist kein gültiger {{ type }}."
groups: [ "AppOrder", "AppOrderbasket" ]
- Callback: [App\APIBundle\Validator\Validator, validate]
groups: [ "AppOrder", "AppOrderbasket" ]
尝试使用外部回调验证类验证金额属性时遇到以下问题:
功能"验证"在验证类App \ APIBundle \ Validator \ Validator中根本没有被调用。我已经尝试通过添加"组来添加验证组"属性到回调约束。这似乎没有效果,因为我收到此警告(警告:trim()期望参数1为字符串,给定数组);
如果我删除"组"属性警告消失,但仍未调用验证器。
有什么想法吗?
提前致谢
ninsky
答案 0 :(得分:4)
您现在正在使用正常语法混合default option syntax。这不起作用。
如果您只需要指定默认选项(callback
约束的情况下为Callback
选项),则可以使用Callback: [App\APIBundle\Validator\Validator, validate]
。但是,如果您必须定义2个选项(在您的情况下为callback
和groups
),则必须使用常规语法:
- Callback:
callback: [App\APIBundle\Validator\Validator, validate]
groups: [AppOrder, AppOrderbasket]