2012-04-19 38 views
0

我使用的Symfony 1.4允许用户导入各种类型的CSV文件,我已经决定整合验证和上传文件的实际内容消毒成自定义验证 - 自定义验证将延长sfValidatorFile。另外,当文件包含错误时,我想在表单上抛出全局错误,而不是将它们显示为字段/本地错误 - 并且 - 能够同时显示给定的多个验证错误导入文件。从Symfony自定义验证器中抛出全局错误的优雅方法?

我很确定我可以通过使用Post Validator来完成这项工作,但这看起来并不适合Post Validator(因为我真的只需要一个表单字段的知识就可以执行我的自定义验证),但更重要的是,我想要一些更优雅的东西,将所有额外的验证工作打包到单个自定义文件验证器中。

,而不是例如:

$this->validatorSchema['file'] = new sfValidatorFile(…); 
$this->validatorSchema->setPostValidator(new myFancyValidator(…)); 

我只是想这样做:

$this->validatorSchema['file'] = new myFancyValidator(…); 

...里面还myFancyValidator遇到验证错误添加到形式的集合全局错误。

我已经尝试了几种不同的方法来从我的自定义验证器内的错误推到窗体的globalErrors,但我缺少关于确认拼图FIT /范围的各部分是如何在一起的东西。有关如何完成此任何想法?依赖注入?

回答

0

在您自定义的验证,如投掷sfValidatorError对象:

if(!$isValid){ 
    // throw global error 
    throw new sfValidatorError($this, "invalid"); 
} 
else { 
    return true; 
} 
相关问题