【问题标题】:Symfony2 : Validation Halt on First ErrorSymfony2:第一个错误时验证停止
【发布时间】:2012-11-14 04:05:10
【问题描述】:
似乎 Symfony2 Validation Service 的 $validator->validate( $class ); 在 if 返回 $error 类之前运行了所有验证检查。这通常没问题,但我正在寻找halt_on_failure 功能,因为一旦特定属性失败,它会在正在进行的验证检查中触发PHP 错误。
在 Symfony-1 中有很好的记录,有一个 halt_on_error,但我不确定它在 Symfony2 中是如何工作的。我找到了对它的引用,但没有示例。
这是similar question
【问题讨论】:
标签:
php
validation
symfony
【解决方案1】:
为这个问题找到了两个解决方案。
-
使用群组。 Richard Miller
写了一篇关于 SF2 Validation with Groups 的精彩总结。本质上,
我所做的被标记为初始验证步骤
Step1 剩下的步骤就不用管了。然后,您向 Validator 服务发出请求,如下所示:
$this->validator->validate($class, array('step1', 'Default'));
其他 IF 语句。在我的情况下,我使用 API 进行验证,所以我想确保输入是准确的,这样我就不会浪费 API 请求。 IF语句可用于切断API请求和return false。
我选择做什么以及为什么
我选择执行第 2 步。虽然第 1 步可能更好地利用了验证技术,但我并不担心需要添加的其他组参数。这是代码维护责任。好像在 Symfony2.2 中,会有一个halt_on_error 功能,到时候应该会更新这个解决方案。