【问题标题】:Symfony 1.4: Check if form has errors inside form classSymfony 1.4:检查表单类中是否有错误
【发布时间】:2012-06-15 09:14:16
【问题描述】:
Symfony 1.4 中是否有一种简单的方法可以知道提交的表单在表单类中是否有任何错误?我对模板的 $form['some_field']->hasErrors() 很熟悉,但在这种情况下,我只想在表单与标准验证器没有任何错误的情况下运行后验证器。我基本上是在追求类似的东西:
public function configure() {
// widgets
// standard validators
if (!this->hasErrors()) {
// run post-validator
}
}
API 文档和往常一样神秘。提前致谢。
【问题讨论】:
标签:
forms
validation
symfony1
symfony-1.4
【解决方案1】:
由于验证是在 bind 调用上执行的,因此我没有看到其他地方可以在错误时发布验证,而不是在 bind 函数中。所以,在你的表单类中:
public function bind(array $taintedValues = null, array $taintedFiles = null)
{
parent::bind($taintedValues, $taintedFiles);
if ($this->hasErrors())
{
// do post validate
// you can access values from your form using $taintedValues
}
}
但是您将不得不手动调用验证器,而不是仅仅定义一个新的验证器(因为绑定过程已经完成)。