Php 从Symfony自定义验证器抛出全局错误的优雅方式?

Php 从Symfony自定义验证器抛出全局错误的优雅方式?,php,forms,symfony1,validation,Php,Forms,Symfony1,Validation,我使用Symfony 1.4允许用户导入各种类型的CSV文件,我决定将上传文件的实际内容的验证和清理整合到自定义验证器中-自定义验证器将扩展SFValidator文件 此外,当文件包含错误时,我希望在表单上抛出全局错误,而不是将它们显示为字段/本地错误,并且能够同时显示给定导入文件的许多验证错误 我很确定我可以通过使用后验证器来实现这一点,但这似乎不太适合后验证器(因为我只需要了解一个表单字段就可以执行自定义验证),但更重要的是,我想要一些更优雅的东西,将所有额外的验证工作打包到一个定制的文件验

我使用Symfony 1.4允许用户导入各种类型的CSV文件,我决定将上传文件的实际内容的验证和清理整合到自定义验证器中-自定义验证器将扩展SFValidator文件

此外,当文件包含错误时,我希望在表单上抛出全局错误,而不是将它们显示为字段/本地错误,并且能够同时显示给定导入文件的许多验证错误

我很确定我可以通过使用后验证器来实现这一点,但这似乎不太适合后验证器(因为我只需要了解一个表单字段就可以执行自定义验证),但更重要的是,我想要一些更优雅的东西,将所有额外的验证工作打包到一个定制的文件验证器中

例如,而不是:

$this->validatorSchema['file'] = new sfValidatorFile( … );
$this->validatorSchema->setPostValidator(new myFancyValidator( … ));
我只想做一些类似的事情:

$this->validatorSchema['file'] = new myFancyValidator( … );
…并将myFancyValidator中遇到的验证错误添加到表单的全局错误集合中


我已经尝试了几种不同的方法从我的自定义验证器中将错误推送到表单的全局错误上,但是我缺少了一些关于验证难题的各个部分如何配合/作用域的信息。关于如何做到这一点,你有什么想法吗?依赖项注入?

在自定义验证器中抛出sfValidatorError对象,例如:

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