Example #1
0
 public function validate($deep = true)
 {
     // call parent
     parent::validate($deep);
     // strip any non-digit characters from phone before validation
     if ($this->Phone) {
         $this->Phone = preg_replace('/\\D/', '', $this->Phone);
     }
     $this->_validator->validate(array('field' => 'Class', 'validator' => 'selection', 'choices' => self::$subClasses, 'required' => false));
     $this->_validator->validate(array('field' => 'FirstName', 'minlength' => 2, 'required' => true, 'errorMessage' => 'First name is required.'));
     $this->_validator->validate(array('field' => 'LastName', 'minlength' => 2, 'required' => true, 'errorMessage' => 'Last name is required.'));
     $this->_validator->validate(array('field' => 'Email', 'validator' => 'email', 'required' => static::$requireEmail));
     // check handle uniqueness
     if ($this->isDirty && !$this->_validator->hasErrors('Email') && $this->Email) {
         $ExistingUser = User::getByField('Email', $this->Email);
         if ($ExistingUser && $ExistingUser->ID != $this->ID) {
             $this->_validator->addError('Email', static::$existingEmailError);
         }
     }
     $this->_validator->validate(array('field' => 'Phone', 'validator' => 'phone', 'required' => static::$requirePhone));
     $this->_validator->validate(array('field' => 'BirthDate', 'validator' => 'date_ymd', 'required' => static::$requireBirthDate));
     $this->_validator->validate(array('field' => 'Gender', 'validator' => 'selection', 'required' => static::$requireGender, 'choices' => self::$fields['Gender']['values']));
     // save results
     return $this->finishValidation();
 }