2013-05-06 3 views
0

작동하는 등록/업데이트 모델이 있었기 때문에 모델을 확장하여 암호 필드에 정규식을 추가했습니다. 나는 정규식이 온라인으로 작동하는지 검사했고 클라이언트 측 유효성 검사에서도 작동한다는 것을 보여 주지만 모델은 지금 저장을 거부합니다. 나는 왜 그런지 잘 모르겠다.Yii 규칙() 일치하지 않음

 return array(
     array('firstName, lastName, email, password', 'required'), 
     array('firstName', 'length', 'max'=>45), 
     array('lastName', 'length', 'max'=>80), 
     array('email', 'length', 'max'=>120), 
     // email must be valid email 
     array('email', 'email'),  
     // email must be unique 
     array('email', 'unique'), 
     // Regex for password 
     array('password','match', 'pattern'=>'/^[a-z0-9_-]{7,20}$/i', 
      'message'=>'The password must be between 7 and 20 characters 
      long'), 


     array('password', 'length', 'min'=>7, 'max'=>64), 
     array('date_modified', 'safe'), 
     array('active, date_modified', 'default', 'setOnEmpty' => true, 'value' => null), 
     array('id, first_name, last_name, email, pass, active, date_created, date_modified, live', 'safe', 'on'=>'search'), 

    ); 

감사

조니

+0

오류가 있는지 yii 로그를 살펴 보셨습니까? 모델 에러를'var_dump '하려고 했습니까 :'var_dump ($ model-> errors);'? – soju

+0

더 자세히 살펴본 후 문제는 내 beforeSave() 메소드에있었습니다. 언제나처럼 모든 도움에 감사드립니다. – Jonnny

답변

2

당신은 당신의 자신의 유효성 검사 규칙을 만들 수 있습니다.

http://www.yiiframework.com/wiki/168/create-your-own-validation-rule/

아니면 당신이 YII 모델이 같은 유효성 검사 규칙을 정의 할 수 있습니다 :

return array(
    array('password', 'length', 'min'=>7, 'max'=>64), 
    array('password','pattern'=>'/^[[email protected]#$%^&*()+=?.,]+$/u', 'message'=>'Spaces or given characters are not allowed'), 
); 

는 모델에 지정할 수있는 더 검증이 있습니다.