代码之家  ›  专栏  ›  技术社区  ›  Fluffy

我怎样才能改变教义的“无效”信息?

  •  1
  • Fluffy  · 技术社区  · 14 年前

    我在使用symfony和district,我做了一份登记表。电子邮件字段被声明为唯一的,如果我将其设置为现有字段,则会收到消息 An object with the same "email" already exist. . 我使用以下验证器:

    $this->validatorSchema['email'] = new sfValidatorEmail(array('required' => true), array('invalid' => 'Does not seem to be a proper email'));
    

    如何更改“已存在”消息?谢谢

    1 回复  |  直到 14 年前
        1
  •  4
  •   Steve    14 年前

    您看到的唯一字段上的错误发生在验证后,因此您需要重写其中的验证程序,您可以在表单中这样做:

    $this->validatorSchema->setPostValidator(
      new sfValidatorDoctrineUnique(
        array(
          'model' => 'Profile',
          'column' => array('email'),
          'throw_global_error' => false
        ),
        array(
          'invalid' => 'A user with that %column% already exists'
        )
      )
    );
    

    如果需要验证多个字段,例如 username 存储在 sfGuardUser 你可以通过 sfValidatorAnd (接受多个验证器的单个数组)到 setPostValidator .

    另外:如果您需要保留其他现有的验证器,那么值得研究 mergePostValidator 方法。