2010-04-02 8 views
1

저는 symfony를 doctrine과 함께 사용하고 있습니다. 등록 양식을 만듭니다. 전자 메일 필드는 고유하게 선언되며 이미 기존 필드로 설정하면 An object with the same "email" already exist. 메시지가 나타납니다. 다음 유효성 검사기를 사용합니다.doctrine의`invalid` 메시지를 어떻게 바꿀 수 있습니까?

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

"이미 존재합니다"라는 메시지는 어떻게 변경합니까? 감사합니다

답변

4

당신이보고있는 고유의 필드에 오류가 사후 검증에서 발생, 그래서 당신은 당신이 당신의 형식과 같이이 작업을 수행 할 수있다 유효성 검사기를 재정의해야합니다

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

당신이 필요한 경우 예를 들어 여러 필드의 유효성 검사 usernamesfGuardUser에 저장되어있는 경우 setPostValidatorsfValidatorAnd (여러 개의 유효성 검사기로 이루어진 단일 배열을 허용)을 전달할 수 있습니다.

기타 기존의 유효성 검사기를 유지해야하는 경우 mergePostValidator 메서드를 살펴볼 필요가 있습니다.

관련 문제