1

可能重复:
根据 Symfony 中的另一个字段值验证一个字段

如何未命除,即当检查单选按钮R时,某种形式的字段命名为A E B?我希望通常为这些 A/B 字段配置验证器,但如果选中单选按钮 R(例如,将 A 和 B 设置为必需的字符串,但在 R 为即使它们是空的也要检查)。

我试图覆盖 doBind 函数,使用前/后验证器,但我继续收到“必需”消息

谢谢!

4

1 回答 1

3

是正确的操作。我找到了几个答案,最好的办法是覆盖bind函数并根据表单中的值重新定义验证器的选项(禁用必需选​​项或删除验证器):

public function bind(array $taintedValues = null, array $taintedFiles = null)
{
  if($taintedValues["method"] == 'phone')
  {
    // disabled required
    $this->validatorSchema["email"]->setOption('required', false);
  }
  else
  {
    // remove the validator
    $this->validatorSchema['other_field'] = new sfValidatorPass();

    // and disabled required
    $this->validatorSchema["phone"]->setOption('required', false);
  }

  return parent::bind($taintedValues, $taintedFiles);
}
于 2012-05-20T13:19:10.023 回答