Symfony2:第一个错误的验证停止

时间:2012-11-26 16:25:40

标签: php validation symfony

在返回$validator->validate( $class );类之前,似乎Symfony2 Validation Service$error会运行所有验证检查。这通常没问题,但我正在寻找halt_on_failure功能,因为一旦某个特定属性失败,就会在进行的验证检查中触发PHP错误。

在Symfony-1中有相当详细记载,有一个halt_on_error,但我不确定它在Symfony2中是如何工作的。我找到了它的参考但没有例子。

这是similar question

1 个答案:

答案 0 :(得分:1)

找到了解决此问题的两种解决方案。

  1. 使用群组Richard Miller 写了一个很好的SF2验证与组的摘要。实质上, 我所做的是标记了初始验证步骤 Step1并单独完成其余步骤。然后,您可以向Validator服务发出请求:

    $ this-> validator-> validate($ class,array('step1','Default'));

  2. 其他IF语句。在我的情况下,我使用API​​进行验证,所以我想确保输入是准确的,所以我没有浪费API请求。 IF语句可用于切断API请求和return false

  3. 我选择做什么以及为什么

    我选择使用第2步。虽然步骤1可能更好地使用了验证技术,但我并不认为需要添加的其他组参数。这是代码维护责任。在Symfony2.2中,似乎会有一个halt_on_error功能,此时应该更新此解决方案。