【Yii】Validation scenarios

2776 단어 validation
웹 응용 프로그램에서 검증이 필요한 곳이 여러 군데 있을 수 있습니다.예를 들어 "등록할 때username,email,password 세 가지는 반드시 기입해야 하지만,"암호를 찾을 때"이메일만 필요할 수 있습니다. 따라서 Yii 프레임워크에서 이 세 가지를 모두'required'로 설정하면 안 될 것입니다.
가장 좋은 해결 방법은 서로 다른 검증 장면을 구축하고'on'을 통해 한 장면을 상응하는 규칙과 연결시키는 것이다.User Model에서 rules()의 예를 살펴보겠습니다.
public function rules() {

    return array(

        //Set required fields

         //Applies to 'register' scenario

         //Note 'on' property

        array('username, password, password_repeat, email', 'required', 'on' => 'register'),

 

        //Applies to 'recover' scenario

        array('email', 'required', 'on' => 'recover'),

 

        //Applies to all scenarios

        array('username, password', 'length', 'max'=>35, 'min'=>3),

 

        //This rule checks if the username is unique in the database in

        //the 'register' scenario (we don't want it to check for uniqueness

        //on the login page for instance)

        array('username', 'unique', 'on' => 'register'),

 

        //This rule applies to 'register' and 'update' scenarios

        //Compares 'password' field to 'password_repeat' to make sure they are the same

        array('password', 'compare', 'on' => 'register, update'),

    );

}

주석을 통해 우리는 이러한 정의의 장점을 잘 이해할 수 있다.이제 우리는 CModel::validate () 방법을 호출하여 서로 다른 장면을 검증할 수 있습니다.
if ($user->validate('register')) {

    $user->save(false);

}

 
 
 

좋은 웹페이지 즐겨찾기